A backend architecture project that demonstrates the evolution of an e-commerce platform from a Modular Monolith to a Microservices architecture.
The goal of this project is not only exploring e-commerce system but also to explore the software architecture, Domain Driven Design, scalability and distributed system through increasing evolution.
Note:
This project is only for learning purposes, not designed to be commercial and production ready.
Instead of building a Microservices architecture from the beginning, the project follows the approach below:
- Build a well-designed modular monolith.
- Establish clear domain boundaries using Domain Driven Design.
- Continuously refactor the architecture to improve scalability and maintainability.
- Introduce distributed system patterns only when necessary.
- Gradually evolve into a Microservice architecture.
You can find the business requirements in the Business Requirements document.
You can find the stages of the project in the Stages document.
️🎉 Thank you for your interest in this project! If this project is useful with you, please consider supporting it by starring it on GitHub.