Microservices Companion Project - scottcarnold/pmdb GitHub Wiki

Time and ambition permitting, I am planning on adding a companion project that will delve into containerized microservices. This is still in the planning stages. There are a lot more considerations than you might first think before beginning a microservices application -- even a small one:

  • Will it use a single repository or a repository for each microservice?
  • How much cloud integration should it have?
  • How will logging be handled?
  • How will properties and secret properties be managed?
  • How will the services communicate with each other, and how will that interface be managed?
  • Will it be synchronous or asynchronous?

To accomplish all of this in a full application with authentication and authorization, I will be writing a new version of PMDB using a variation of the gateway approach as described in later sections of the Spring tutorial on Spring security and Angular, but I will be using newer microservices techniques and technologies to make a fully reactive application. This will result three primary separate components: the gateway, the UI, and the back end services. All of these components will be wrapped as Spring Boot applications.

The Gateway

The Gateway will handle authentication and serve as a single point of entry to the back end. I am planning to use Spring Cloud Gateway for this piece.

The UI

The UI will be the Angular application from the PMDB Angular project (minus the back end services).

The Back End Services

The back end will be containerized microservices using Spring Boot.