-
Notifications
You must be signed in to change notification settings - Fork 180
Home
-
This project is a development of a small set of Spring Boot based Microservices projects that implement cloud-native intuitive, design patterns and coding best practices.
-
The project follows CloudNative recommendations and The Twelve-Factor app methodology for building software-as-a-service apps to show how μServices should be developed and deployed.
-
The project is using cutting edge technologies like Docker, Kubernetes, Elasticsearch Stack for logging and monitoring, Java SE 14, MySQL database, MongoDB, TDD, unit, integration & performance testing and Reactive Programming, and many more.
I am developing this project as stages, and Each such step will be a release in its own, so you can go back and forward between versions to see the differences and how adding things solve specific problems we face.
For example, in the first stage (1st release), I just created project structure, essential services' skeleton, integration between them, and finally, write integration testing as well as semi-automated testing for the complete services' functionality.
At the 1st stage, the Recommendation and Review microservices generate local in-memory data, and Store Service calls the other three services (Product, Recommendation, and Review) statically to generate client aggregate response for a specific product. Therefore, in:
- The second stage I will introduce database integration, then in (done)
- The third stage I will add Dockerization of our services and docker-compose, and in (done)
- In the fourth stage, I will introduce service discovery, and so on.
The first stage, aka (Release v1.0), is about creating and implementing a set of project Microservices.
The following points are covered in this 1st stage (other stages topics will be documented in each release notice):
- Introducing the microservice landscape as a diagram.
- Generating skeleton for Store, Product, Recommendation, and Review microservices.
- Adding RESTful APIs.
- Handling all microservices error by one controller.
- Testing the APIs manually using swagger.
- Developing automated microservices integration tests in isolation.
- Developing Blackbox automated tests to the microservice landscape.
- Here I am adding more business concepts while keeping the project software stack updated to the most recent software versions. Besides, adding more use cases and problems, my team and I are facing in a day by day work.
- The code here inspired by the book Hands-On Microservices With Spring Boot and Spring Cloud book by Packt Publishing.
- CloudNative recommendations.
- Twelve-Factor application.
- Spring Cloud framework.
- Spring Boot framework.