ASP.NET Microservices Shopping App with Blazor and Razor Pages as two Client apps communicating through Ocelot API as a gateway(+aggregator) with the APIs that use RabbitMQ as a message-broker, Redis for Cache, MongoDB, PostgreSQL, SQL Server as databases, Dapper and Entity Framework as ORMs, Docker for containerization
Microservices architecture is an approach to designing and building software applications as a collection of loosely coupled, independently deployable services. This architectural style offers numerous benefits(but also drawbacks) that can enhance(or slow down) the development, deployment, scalability, and maintainability of software systems.
This apps architecture is shown below:
- ASP.NET - The web framework used
- SQL Server - Used to persist data from the OrderingAPI
- MongoDB - Used to persist data from the CatalogAPI
- PostgreSQL - Used to persist data from the DiscountGRPC
- Redis - Used to cache data from the basket
- OcelotAPI - Used as a gateway service
- RabbitMQ - Used as a message-broker between BasketAPI and OrderingAPI
- Docker - Used for containerization