Domain-Driven Design
Problem
Developers model a complex business using technical concepts:
CustomerTable
StatusCode
ProcessFlag
But business experts talk about contracts, claims, policies and renewals.
The software and business describe different worlds.
Solution — Domain-Driven Design
Model software around business concepts and language.
Policy
Claim
Coverage
Renewal
With data-only models, the application layer holds the business rules. A rich DDD model keeps rules with the data: Order.Cancel() enforces cancellation rules, while the application layer loads the order, calls Cancel(), and saves it.
Onion and Clean Architecture organize dependencies and can support either model style. DDD focuses on business meaning, rules, and boundaries.
The distinction is data-only versus behavior-rich models.
Core idea: DDD models business concepts, rules, and boundaries in the software.