#ddd
16 pages tagged.
Articles
Domain-Driven Design, audited
Rereading Evans's Domain-Driven Design twenty years on, as a source rather than an authority. What the field kept, what it reweighted, what it added, and what it only appears to fight about.
Concepts
Aggregate
A cluster of objects treated as one unit for data changes, guarded by a root that protects its invariants. Durable intent, dated mechanism.
Anti-Corruption Layer
A translation layer that keeps a foreign domain model from leaking across a context boundary. Wider than a hexagonal adapter.
Bounded Context
The scope within which a single domain model stays consistent and unambiguous, governed by one ubiquitous language. The most durable pattern in DDD.
Context Mapping
Naming the relationships between bounded contexts: partnership, customer-supplier, conformist, or a defensive anti-corruption layer. A socio-technical map.
CQRS
Separate models for writing and reading. It earns its complexity only when the two genuinely diverge, and it is distinct from domain events and event sourcing.
Domain-Driven Design
A field-audited reading of Evans's DDD. Strategic design is the durable core, the tactical building blocks are tiered, and the event-driven parts are the field's own addition.
Domain Event
A named record of something meaningful that happened in the domain. The field's most successful addition to tactical DDD, and barely in the Blue Book.
Entity
An object defined by identity and continuity, not attributes. It can change every field and still be the same thing. Endorsed since 2003, but the word got captured.
Event Sourcing
Store state as the sequence of events that produced it, not the current snapshot. Distinct from domain events and CQRS, and best kept local rather than system-wide.
Event Storming
A collaborative workshop for surfacing domain events with the whole team in the room. A post-2003 format the DDD canon adopted from within.
Intent and Mechanism
The garden's core reading lens, first cut for DDD. Every pattern is a durable intent wrapped around a dated mechanism. The intent survives; the mechanism ages.
Strategic vs Tactical Design
DDD has two halves. The durable core is strategic; the tactical building blocks earn their place by following from strategic decisions, not the other way around.
Subdomains and the Core Domain
Not all of the domain is equally valuable. Distillation finds the core worth your best modeling and separates it from supporting and generic subdomains.
Ubiquitous Language
The shared vocabulary of a bounded context, used identically in conversation, code, and tests. The most robust concept in DDD.
Value Object
An object defined by its attributes, not an identity. Two with the same values are interchangeable. The one 2003 mechanism that improved with age.