Dynamic Consistency Boundary
A Dynamic Consistency Boundary (DCB) defines the minimal set of information that must be consistent to make a decision. The boundary is determined at runtime by the data a command actually uses, rather than by a fixed aggregate or transactional scope. This keeps decisions correct while allowing the rest of the system to remain eventually consistent and independently evolving.
Core idea
- Consistency is scoped to the facts used to decide a change.
- The boundary can cross multiple event streams and read models.
- Events can still be appended independently once the decision is made.
How it works in practice
- Load the facts needed to decide.
- Derive a boundary that represents those facts.
- Enforce consistency for that boundary only.
- Append new events and let read models catch up.
flowchart TD
A[Command] --> B[Load decision facts]
B --> C[Derive consistency boundary]
C --> D[Validate and decide]
D --> E[Append events]
E --> F[Project read models]
Why it matters
A fixed aggregate boundary often forces unrelated data into a single consistency scope. DCB keeps correctness while avoiding unnecessary coupling. It improves throughput, reduces contention, and keeps models aligned with actual decision rules.