
Understanding DDD Aggregates Through Board Games and Battlefields
I've been learning DDD for almost two years now. My understanding of Aggregate kept evolving — from accidentally treating it as just a Write Model, to roughly grasping that "an Aggregate protects invariants." But something always felt unclear. Then a couple days ago, while explaining it to a teammate, I tried using a game analogy, and suddenly everything clicked. An Aggregate Is a Board Game Think of a board game. One game is one Aggregate. It has characters, items, and events — but most importantly, it has rules . Every action taken inside that game must follow those rules. The rules of Catan only apply in Catan. You can't bring Monopoly's "collect $200 when passing Go" rule into it. Catan itself is the Aggregate — not the characters, not the items, but the game as a whole. Once you have those characters and items living inside the Aggregate, you can design Commands to operate on them. So an Aggregate protecting its invariants is really just like a board game enforcing its rules. The
Continue reading on Dev.to
Opens in a new tab


