Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/albertomitroi/eshopmicroservices
A comprehensive microservices-based e-commerce project built using .NET 8 and C# 12, demonstrating modern software architecture principles like Domain-Driven Design (DDD), CQRS, and Clean Architecture. This project showcases scalable and maintainable systems with cloud-native deployment on Azure using tools like RabbitMQ, Redis, gRPC, and more.
https://github.com/albertomitroi/eshopmicroservices
api-gateway clean-architecture cloud-deployment cqrs-pattern ddd-architecture docker-compose fluentvalidation grpc masstransit mediatr microservice postgresql rabbitmq redis sql-server vertical-slice-architecture yarp
Last synced: about 1 month ago
JSON representation
A comprehensive microservices-based e-commerce project built using .NET 8 and C# 12, demonstrating modern software architecture principles like Domain-Driven Design (DDD), CQRS, and Clean Architecture. This project showcases scalable and maintainable systems with cloud-native deployment on Azure using tools like RabbitMQ, Redis, gRPC, and more.
- Host: GitHub
- URL: https://github.com/albertomitroi/eshopmicroservices
- Owner: AlbertoMitroi
- License: mit
- Created: 2024-10-24T20:02:01.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-12-13T09:48:24.000Z (about 1 month ago)
- Last Synced: 2024-12-13T10:41:14.658Z (about 1 month ago)
- Topics: api-gateway, clean-architecture, cloud-deployment, cqrs-pattern, ddd-architecture, docker-compose, fluentvalidation, grpc, masstransit, mediatr, microservice, postgresql, rabbitmq, redis, sql-server, vertical-slice-architecture, yarp
- Language: C#
- Homepage: https://eshopmicroservices-albertomitroi.azurewebsites.net
- Size: 2.29 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ☁︎ EShopMicroservices
**A comprehensive microservices-based e-commerce project demonstrating modern software architecture principles, leveraging cutting-edge .NET technologies and cloud deployments.** This project highlights essential design patterns, best practices, and cloud-native features, showcasing expertise in building scalable and maintainable distributed systems.
---
## **🌟 Overview**
The **EShopMicroservices** project showcases a highly modular and scalable microservices architecture built using the latest advancements in .NET 8 and C# 12. It emphasizes best practices such as **Domain-Driven Design (DDD)**, **CQRS**, and **Clean Architecture** to ensure maintainability and extensibility.
---
## **🔑 Key Features**
### **🖥️ Backend Technologies & Architecture**
- **ASP.NET Core 8 Web API** for microservices development.
- Utilization of **Minimal APIs** and the latest features of .NET 8.
- **Vertical Slice Architecture** with feature-based folder organization.
- **CQRS (Command Query Responsibility Segregation)** implemented using:
- **MediatR** for message handling and processing.
- **FluentValidation** for pipeline-based validation.
- **Marten Library** for transactional document storage on PostgreSQL.
- **Entity Framework Core**:
- Code-first approach with automatic migrations to SQL Server.
- Clean architecture integration for domain entity configurations.### **🧩 Design Patterns & Best Practices**
- Incorporation of **Proxy**, **Decorator**, and **Cache-aside** design patterns.
- **Distributed caching** using **Redis** for enhanced performance.
- **High-performance inter-service communication** with **gRPC**.
- Basket Microservice integration with the Discount gRPC service for product pricing.
- **RabbitMQ** for asynchronous messaging:
- **MassTransit** for simplified abstraction and messaging workflows.
- Publish/Subscribe pattern using **Topic Exchange** Model.
- **API Gateway** with **YARP Reverse Proxy**:
- Advanced routing, transformation, and rate limiting.### **🌐 Frontend**
- **ASP.NET Core Web Application** with Razor templates and Bootstrap 4 for responsive UI.
- **Refit Library** integration for seamless API consumption.---
## **☁️ Cloud Deployment**
- **Azure Deployment** automated via **GitHub Actions** CI/CD pipelines:
- Deployment to **Azure App Services** for microservices.
- Integration with **Azure SQL**, **Azure PostgreSQL**, and **Azure Redis** for a cloud-native setup.---
## **🚀 How to Run Locally**
1. Clone the repository:
```bash
git clone https://github.com/AlbertoMitroi/EShopMicroservices.git
3. Build and run the services using Docker Compose:
```bash
docker-compose up --build
5. Access the application:
- Web app: [http://localhost:5000](http://localhost:5000)
- API Gateway: [http://localhost:8080](http://localhost:8080)---
## **🏗️ Deployment to Azure**
1. Set up resources in Azure:
- App Services for hosting the microservices.
- Azure SQL, PostgreSQL, and Redis for data and caching.
2. Configure GitHub Actions with Azure credentials and resource settings.
3. Push changes to trigger automated CI/CD workflows.---
## **🎉 Conclusion**
The EShopMicroservices project demonstrates expertise in modern software development, cloud deployments, and scalable microservices architecture. It reflects proficiency in building robust, maintainable, and cloud-ready systems using state-of-the-art tools and practices.Explore the repository to learn more and feel free to contact me for further details!