- 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