What problem does it solve?
Helps .NET teams implement tactical Domain-Driven Design patterns to enforce aggregate boundaries, replace primitive obsession with value objects, and reliably dispatch domain events so business invariants remain consistent and side effects are decoupled.
Core Features & Use Cases
- Aggregate root patterns: structure aggregates as consistency boundaries, enforce invariants through dedicated methods, and load/save aggregates as a unit.
- Value objects & strongly-typed IDs: use immutable records and readonly structs to encapsulate validation, equality, and EF Core conversions to prevent type confusion.
- Domain event dispatching: raise events inside aggregates and publish them after SaveChangesAsync to decouple side effects from domain rules.
- EF Core mapping guidance: patterns for converting value objects and IDs, complex property mapping, and navigation auto-inclusion.
- Anti-patterns & decision guide: when to avoid DDD, how to size aggregates, and recommended repository vs DbContext approaches.
Quick Start
Use the ddd skill to design an Order aggregate with strongly-typed IDs, Money value objects, and domain events dispatched on save.