Domain-Driven Design
DDD is a software design approach centered on the business domain, modeling with ubiquitous language, bounded contexts, and entities/value objects.
Purpose
Align software structure with the business domain, managing complex business logic.
Mechanism
Ubiquitous language: code uses business terms. Bounded contexts: model boundaries. Entities (with ID), value objects (no ID), aggregates (consistency boundaries), domain events. Strategic design partitions contexts; tactical design fills in models.
Use cases
- Complex business modeling
- Microservice boundaries
- Domain expert collaboration