The core components: a selected toolkit
Choose the words, then refuse the rest
Build the small shared vocabulary humans and agents need for delegation: commands, events, queries, handlers, aggregates, entities, value objects, domain services, ports, and read models.
- 01
Choose the words, then refuse the rest
✎ TextBuild a small shared vocabulary that a human and an agent can both hold.
- 02
Three kinds of message: command, event, query
✎ TextKeep commands, events, and queries separate to buy cheap clarity throughout the system.
- 03
The command handler, formalised
✎ TextA handler coordinates one behavior through ports; it does not make the domain decision.
- 04
The aggregate: where “must never happen” is guaranteed
✎ TextUse an aggregate as the transactional boundary that makes invariants structurally impossible to break.
- 05
Entities and value objects
✎ TextSeparate objects with durable identity from immutable values defined by their attributes.
- 06
Domain services: logic that belongs to no single thing
✎ TextPut genuine cross-aggregate domain decisions in a domain service.
- 07
Ports
✎ TextPorts are interfaces the core owns; adapters are implementation details outside the core vocabulary.
- 08
The read model
✎ TextKeep a read shape for answering questions separate from the write shape that guards rules.
- 09
The pieces, assembled
✎ TextPut the vocabulary together on one feature and the flow becomes precise.
- 10
Standard component for optimal delegation
✎ TextTranslate features into precise component words so the agent has fewer gaps to guess into.