611 B
611 B
Tactical Pattern Checklist
Aggregate design
- One aggregate root per transaction boundary
- Invariants enforced inside aggregate methods
- Avoid cross-aggregate synchronous consistency rules
Value objects
- Immutable by default
- Validation at construction
- Equality by value, not identity
Repositories
- Persist and load aggregate roots only
- Expose domain-friendly query methods
- Avoid leaking ORM entities into domain layer
Domain events
- Past-tense event names (for example,
OrderSubmitted) - Include minimal, stable event payloads
- Version event schema before breaking changes