Tutorials Clean Architecture & DDD Mastery

Aggregates & Aggregate Roots: Defining consistency boundaries

On this page

Consistency Boundaries

An Aggregate is a cluster of domain objects that can be treated as a single unit. The Aggregate Root is the gatekeeper.

1. The Rule of the Root

The Aggregate Root is the only member of the aggregate that outside objects are allowed to hold a reference to. If you have an Order (Root) and OrderItems (Children), you can't talk to an OrderItem directly. You must go through the Order. This ensures the Order can enforce rules like 'Total price cannot exceed credit limit'.

2. Transactional Consistency

One transaction should only update **ONE** aggregate. This is a difficult but vital rule for scaling. If you need to update two things, use **Domain Events** and 'Eventual Consistency'. This keeps your aggregates small, fast, and independent.

3. Architect Insight

Q: "How big should an aggregate be?"

Architect Answer: "As small as possible, but no smaller. Over-sized aggregates lead to database deadlocks and slow performance. If two things DON'T have a strict rule that they must be changed together in the same millisecond, they should probably be separate aggregates. Smaller is always better for concurrency."

Questions on this lesson 0

Sign in to ask a question or upvote helpful answers.

No questions yet — be the first to ask!

Clean Architecture & DDD Mastery
Course syllabus
1. Architectural Patterns
2. Domain-Driven Design (DDD) Foundations
3. Advanced DDD Patterns
4. Implementing the Clean Layers
5. Patterns for Data & Logic
6. Enterprise Domain Challenges
7. Testing Clean Architecture
8. Real-World Case Study
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details