This solution is a playground for testing and exploring different concepts and approaches in microservice pattern. It is built using .NET 6 along with other technologies. The application consist of a simplified video rental store website.
- Install Docker
- You can run locally with docker compose. Go to the
src
directory and run:
docker compose up -d
Implemented microservices so far:
Simple SPA application using:
- Blazor Server
- Mud Blazor components
http://localhost:7100/
Movie Catalog REST API service using:
- ASP.NET Core Web API
- Minimal APIs
- MongoDb for local storage
http://localhost:7101/swagger/
Shopping Cart REST API service using:
- ASP.NET Core Web API
- Minimal APIs
- RabbitMQ for inter-service communication (in progress)
- Redis for cache storage
http://localhost:7102/swagger/
Ordering REST API service using:
- ASP.NET Core Web API
- Clean Architecure design using DDD principles
- CQRS implementation using MediatR, FluentValidation and AutoMapper
- RabbitMQ for inter-service communication (in progress)
- PostgreSQL for local storage
http://localhost:7103/swagger/
- Asynchronous event driven communication between services using RabbitMQ
- API Gateway (BFF) service to hide hide complexity of the underlying microservices from client application
- Auth service and user management using Identity
- Unit, integration and E2E tests
- Add gRPC communication to some services
- Implement circuit braker and retry patterns for resilience improvements
- Health status website for monitoring the microservices
- Centralized log storage service
Alberto Gómez - @albrtogomez
Project Link: https://github.com/albrtogomez/microservices-playground/