Microservices

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, how data is stored is an implementation detail. Any data store can be used.

Based on our journey, we will design and implement a series of microservices that implement an overall application called Cloud Football Manager.

The application will be composed of the following components:

Later on, we will design and implement each component from a user interface point of view, from a microservice point of view, and from a data store point of view.

As previously mentioned, a cloud-native application can be designed and implemented with any kind of technology. As this book is oriented to Java programmers, it will focus on Spring Boot, Thorntail, and Vert.x, which are the runtime environments of the application.

From a microservice architecture perspective, each component could be implemented and run targeting a different runtime environment; the cooperation between microservices is due to communication protocols.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset