The main concepts of a microservice architecture have been described in Chapter 2, Microservices and Reactive Architecture, where microservices are deployed, exposed, and consumed. Most of the concepts described for a microservice are pretty much the same for a cloud-native application. That's why, most of the time, a cloud-native application is implemented using the microservice approach.
To recap the most important concepts, a microservice should have the following:
- Single responsibility: It must be responsible for only one context—a business domain context; one and well done.
- No sharing: It must be stateless and eventually delegate its persistency state to another backing service.
- Black box: Its implementation must be hidden; the only shareable information is its API and the protocol used to expose its endpoints.
- Private data: As per its hidden implementation...