#Microservices
Microservices, the new fancy word for the creation of complex apps which are decoupled. One of the most common critics of Microservices is that sometimes it would be better to have a slightly decoupled Monolith than going for a full Microservices architecture, because of the required coordination that Microservices must have. Having logging systems and distributed coordination, is quite different to having all of this.
One of the main ideas of Microservices is to implement problemas for distributed teams, where one team is working on another location from another. At the end of the day, collaborating within teams is one of the most exhausting activities that can be held in a corporate environment.
It sounds simple, but often teams have different goals, and different schedules all together. How can we guarantee that we are going to have amazing collaboration? The main way to collaborate between teams is to provide different completed sections of the code.
Martin Fowler talks about what Microservices really are. Plenty of people just try to implement different methodologies that might work, but the harsh truth in software engineering is that often in order to have a good system, you don't need Microservices, block chain or whatever the new flavor of the day is. Often you need to think and be auto-critical. That allows for bigger growth than only exploring different frameworks of growth.
At the end, I've seen good Monoliths with amazing code, and I've seen bad monoliths with complicated code. Microservices can become a mess to manage if it isn't done in a correct way. More often than not we have comments of people having extreme trouble with Microservices. You have to remember that you aren't Google or Microsoft or Netflix. More often than not, a good monolith is the solution.
As always, I love martin's blogs.
Fowler, M. and Lewis. J."Microservices a definition of this new architectural term" https://martinfowler.com/articles/microservices.html Consulted on Apr 23rd 2018
L. Lamport, "The Implementation of Reliable Distributed Multiprocess Systems", 1978 http:// research.microsoft.com/en-us/um/people/lamport/pubs/implementation.pdf