Microservices
The architecture described in the previous chapter is not a clean microservice architecture. You will never meet one in its pure form in any enterprise. It is more like something that we really meet in a real company moving from monolithic to microservices.
We talk about the microservice architecture when the application is developed in the form of many small services that communicate with each other using some simple API, usually over HTTP and REST. The services implement business functionalities and can be deployed independently. Many times, it is desirable that the service deployment is automated.
The individual services can be developed using different programming languages, can use different data storage, and can run on different operating systems; thus, they are highly independent of each other. They can be, and usually are, developed by different teams. The important requirement is that they can cooperate; thus, the API one service implements is usable by the other services...