- Introduction
- Features
- Planned Features
- Technologies Used
- Getting Started
- Usage
- Contributing
- License
- Contact
Welcome to the DDD Product Service! This project showcases the implementation of a product service using Domain-Driven Design (DDD) principles. It's designed to demonstrate best practices in building resilient, scalable, and maintainable systems with C# and the .NET ecosystem.
- 🏗️ Modular Monolith Architecture
- 🧹 Clean and Maintainable Codebase
- 🧩 Domain-Driven Design (DDD)
- 🔄 Command Query Responsibility Segregation (CQRS)
- 🌊 Event Sourcing
- ✅ Comprehensive Unit and Integration Testing
- 🚀 CI/CD Pipeline
- 🐳 Docker Support
- 🐘 PostgreSQL Integration
- 🛑 Redis Caching
- 🔒 Authorization
- 📝 FluentValidation
- 🔧 Middleware
- 📬 RabbitMQ & MassTransit for Messaging
- 🌐 Client App Connectivity
- 🔄 Polly for Resilience and Transient Fault Handling
- Language: C#
- Framework: .NET 8
- Database: SQL Server (to be replaced with PostgreSQL)
- ORM: Entity Framework Core
- Event Store: EventStoreDB
- Messaging: RabbitMQ, MassTransit
- Resilience: Polly
- Testing: xUnit, Moq
- CI/CD: GitHub Actions
-
Clone the repository:
git clone https://github.com/Ebrahem-Outlook/DDD-Product-Service.git cd DDD-Product-Service
-
Set up the database:
dotnet ef database update
-
Run the application:
dotnet run