Understanding microservices
Like many ideas that become popular in technology, it is hard to pin down an exact definition of microservices. Different groups start co-opting the term and start providing their own unique twist on their own definition. And the popularity of microservices is hard to ignore. It might be the most common pattern used in new software development today. In addition, the definition has not stayed static and has evolved over time in the last few years.
Given all these caveats, let's try to define what a microservice is:
A microservice is a software application that follows an architectural style that structures the application as a service that is loosely coupled, easily deployable, and testable and is organized in a well-defined business domain. A loosely coupled system is one where components have little or no knowledge about other components and there are few or no dependencies between these components.
In addition, a certain consensus has...