What is Domain-Driven Design (DDD)?
A software design approach that models code around business domains, using a shared language and explicit bounded contexts.
Definition
Domain-driven design, from Eric Evans's 2003 book, argues complex software should mirror the business domain it serves. Strategically, it partitions a large domain into bounded contexts—each with its own model and ubiquitous language shared by developers and domain experts—so "order" can legitimately mean different things in billing and fulfillment. Tactically, it supplies building blocks: entities, value objects, aggregates guarding invariants, domain events, and repositories. Bounded contexts map naturally onto microservice boundaries and team ownership (echoed by Team Topologies), which drove DDD's revival; techniques like event storming workshops help discover contexts before drawing service lines.

