Skip to content
uencoder

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

References