{"id":22873013,"url":"https://github.com/albertomitroi/eshopmicroservices","last_synced_at":"2026-02-02T12:44:58.166Z","repository":{"id":259525854,"uuid":"878114697","full_name":"AlbertoMitroi/EShopMicroservices","owner":"AlbertoMitroi","description":"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.","archived":false,"fork":false,"pushed_at":"2024-12-13T09:48:24.000Z","size":2422,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T12:22:55.913Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"https://eshopmicroservices-albertomitroi.azurewebsites.net","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlbertoMitroi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-24T20:02:01.000Z","updated_at":"2024-12-13T09:48:29.000Z","dependencies_parsed_at":"2024-10-26T07:47:00.523Z","dependency_job_id":"75166007-e525-4f1e-b0d6-8d5e451a2a69","html_url":"https://github.com/AlbertoMitroi/EShopMicroservices","commit_stats":null,"previous_names":["albertomitroi/eshopmicroservices"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbertoMitroi%2FEShopMicroservices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbertoMitroi%2FEShopMicroservices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbertoMitroi%2FEShopMicroservices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbertoMitroi%2FEShopMicroservices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlbertoMitroi","download_url":"https://codeload.github.com/AlbertoMitroi/EShopMicroservices/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252928932,"owners_count":21826776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-12-13T14:17:03.828Z","updated_at":"2026-02-02T12:44:58.132Z","avatar_url":"https://github.com/AlbertoMitroi.png","language":"C#","readme":"# ☁︎ EShopMicroservices\n\n**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.\n\n---\n\n## **🌟 Overview**\n\nThe **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.\n\n---\n\n## **🔑 Key Features**\n\n### **🖥️ Backend Technologies \u0026 Architecture**\n- **ASP.NET Core 8 Web API** for microservices development.\n- Utilization of **Minimal APIs** and the latest features of .NET 8.\n- **Vertical Slice Architecture** with feature-based folder organization.\n- **CQRS (Command Query Responsibility Segregation)** implemented using:\n  - **MediatR** for message handling and processing.\n  - **FluentValidation** for pipeline-based validation.\n- **Marten Library** for transactional document storage on PostgreSQL.\n- **Entity Framework Core**:\n  - Code-first approach with automatic migrations to SQL Server.\n  - Clean architecture integration for domain entity configurations.\n\n### **🧩 Design Patterns \u0026 Best Practices**\n- Incorporation of **Proxy**, **Decorator**, and **Cache-aside** design patterns.\n- **Distributed caching** using **Redis** for enhanced performance.\n- **High-performance inter-service communication** with **gRPC**.\n  - Basket Microservice integration with the Discount gRPC service for product pricing.\n- **RabbitMQ** for asynchronous messaging:\n  - **MassTransit** for simplified abstraction and messaging workflows.\n  - Publish/Subscribe pattern using **Topic Exchange** Model.\n- **API Gateway** with **YARP Reverse Proxy**:\n  - Advanced routing, transformation, and rate limiting.\n\n### **🌐 Frontend**\n- **ASP.NET Core Web Application** with Razor templates and Bootstrap 4 for responsive UI.\n- **Refit Library** integration for seamless API consumption.\n\n---\n\n## **☁️ Cloud Deployment**\n- **Azure Deployment** automated via **GitHub Actions** CI/CD pipelines:\n  - Deployment to **Azure App Services** for microservices.\n  - Integration with **Azure SQL**, **Azure PostgreSQL**, and **Azure Redis** for a cloud-native setup.\n\n---\n\n## **🚀 How to Run Locally**\n1. Clone the repository:  \n   ```bash\n   git clone https://github.com/AlbertoMitroi/EShopMicroservices.git\n3. Build and run the services using Docker Compose:  \n   ```bash\n   docker-compose up --build\n5. Access the application:\n   - Web app: [http://localhost:5000](http://localhost:5000)\n   - API Gateway: [http://localhost:8080](http://localhost:8080)\n\n---\n\n## **🏗️ Deployment to Azure**\n1. Set up resources in Azure:\n   - App Services for hosting the microservices.\n   - Azure SQL, PostgreSQL, and Redis for data and caching.\n2. Configure GitHub Actions with Azure credentials and resource settings.\n3. Push changes to trigger automated CI/CD workflows.\n\n---\n\n## **🎉 Conclusion**\nThe 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.\n\nExplore the repository to learn more and feel free to contact me for further details!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertomitroi%2Feshopmicroservices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbertomitroi%2Feshopmicroservices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertomitroi%2Feshopmicroservices/lists"}