Microservices
The most common architectural pattern for loosely coupled systems is the microservices pattern, "an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API" (Lewis J. & Fowler M., 2014).
Microservices evolved out of Service-Oriented Architecture (SOA) with some additional characteristics. Microservices have decentralized data management – meaning that every service completely owns its own data. Additionally, microservices favor lightweight messaging instead of complex protocols or central orchestration for interservice communication – smart endpoints and dumb pipes.
One important characteristic of microservices is often missed – they are built around business capabilities. This also defines how small a service should be. To define the scope of your services, you must understand the business domain. One microservice...