Backend / Microservices
E-Commerce Microservices Platform
A .NET microservices e-commerce system with asynchronous messaging, caching, gateway routing and database-per-service architecture.
- ASP.NET Core 9
- CQRS
- MediatR
- Entity Framework Core
- PostgreSQL
- RabbitMQ
- MassTransit
- gRPC
- Redis
- YARP
- FluentValidation
- AutoMapper
- Docker
- Docker Compose
Architecture overview
// clear data flow
Clients
YARP API Gateway
Service A
Service B
Service C
PostgreSQL
Redis
RabbitMQ
Overview
This system splits commerce workflows across independently deployed .NET services. A YARP gateway is the public entry point, PostgreSQL is isolated per service, Redis covers cache-aside reads, and RabbitMQ plus gRPC handle asynchronous and synchronous communication.
Technology Stack
- ASP.NET Core 9
- CQRS
- MediatR
- Entity Framework Core
- PostgreSQL
- RabbitMQ
- MassTransit
- gRPC
- Redis
- YARP
- FluentValidation
- AutoMapper
- Docker
- Docker Compose
Technical Implementation
- Microservice architecture.
- Database-per-service approach with PostgreSQL.
- RabbitMQ + MassTransit event-driven asynchronous messaging.
- gRPC for synchronous service communication.
- Cache-Aside strategy using Redis.
- YARP API Gateway.
- FluentValidation.
- AutoMapper.
- Global exception handling.
- Containerized services using Docker and Docker Compose.
Key Engineering Decisions
- Give each service its own PostgreSQL database so schema and deployment cycles stay independent.
- Use MassTransit on RabbitMQ for work that can complete asynchronously, and gRPC when a request needs an immediate answer.
- Put YARP in front of the services so clients talk to one gateway instead of individual service hosts.
- Apply cache-aside with Redis for read-heavy paths without treating the cache as source of truth.
- Containerize the stack with Docker Compose so local and deployed topologies stay close.