ddd-cross-aggregate-constraints
Installation
SKILL.md
DDD Cross-Aggregate Constraints
A cross-aggregate constraint is usually a requirements question before it is a technical question.
Workflow
-
Restate the rule in business language and ask whether it must be immediately true.
-
If it is a true invariant, consider merging the aggregate boundary or changing the command owner.
-
If it is a policy, use events, reservations, or compensating actions; use a saga only for multi-step orchestration and compensation, not for synchronous existence checks.
-
In CQRS/ES, avoid command decisions based on stale read models unless the business accepts that staleness.
-
Document the inconsistency window and repair mechanism.
Decision Options
- Same aggregate: use when the rule is a true invariant.