Skip to content

A modular e-commerce application for phone retail, built with .NET 8, applying Microservices Architecture, DDD, CQRS, Vertical Slice, and Clean Architecture principles

License

Notifications You must be signed in to change notification settings

minhhuy14/EShop-Microservices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 

Repository files navigation

EShop-Microservices

My name is Le Minh Huy, This is my personal project, providing in-depth knowledge about .NET 8 by applying with Microservices Architecture, DDD, CQRS, Vertical Slice and Clean Architecture. One of the goals of this project is to practice and deepen my understanding of building microservices with .NET.

Technology used

Back-end

  • RESTful APIs implementation using ASP.NET Core
  • Applied Vertical Slice Architecture, CQRS, DDD, Clean Architecture
  • Used MediatR for commands, queries, and pipeline behaviors
  • Validation with FluentValidation
  • Data access using Entity Framework Core (SQL Server, SQLite) and Marten (PostgreSQL)
  • In-memory data with Redis
  • Asynchronous communication using RabbitMQ with MassTransit
  • Synchronous gRPC between services
  • Logging, Health Checks, Exception Handling across services
  • API Gateway with YARP applying route/cluster/transform configuration
  • Applied design patterns: Proxy, Decorator, Cache-aside, UnitOfWork, Generic Repository
  • Dockerized services and databases using Docker Compose

Front-end

How to Run

  1. You need to have the Docker Desktop with Docker compose on your machine
  2. Clone this repository to your machine
  3. Open terminal in this repository folder
  4. Run the following commands in order:
docker-compose up -d
  1. All done, you can access:

About

A modular e-commerce application for phone retail, built with .NET 8, applying Microservices Architecture, DDD, CQRS, Vertical Slice, and Clean Architecture principles

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published