Institute for
HSR

Domain-Driven Design (DDD)

Domain-Driven Design (DDD) proposes techniques and patterns to deal with the intrinsic complexity in software development, both organizationally and technically. Key DDD themes are business-orientation, domain modeling, and knowledge reuse both on the strategical (i.e., long term, cross-project) and on the tactical (i.e., application, project, product) level. DDD has been around, in active use on real-world projects, and supported by a Community since the first DDD book came out in 2003; it recently became particularly popular in the microservices community as a way to identify service boundaries (via strategic DDD).

 

Key Patterns (Selection): 

  • Tactic DDD: Entity, Value Object; Aggregate, Root Entity, Service, Domain Event; Factory, Repository
  • Strategic DDD: Bounded Context, Context Map; Published Language, Shared Kernel, Open Host Service, Customer-Supplier, Conformist, Anti Corruption Layer (context relationship types)

See DDD reference for pattern summaries (PDF, Word) and/or DDD glossary in community website.

 

Introductions

 

Books (Selection, Reverse Chronological Order)

 

Tools

 

Sample Implementations

  • Lakeside Mutual scenario, a set of JavaScript frontends and Spring Boot backends featuring strategic and tactic DDD in addition to Microservice API Pattens (MAP)
  • DDD Sample Application implementing example from first DDD book (SourceForge, GitHub)

 

More Information

 

Kontakt: Olaf Zimmermann