J-Fall 2023 is the Java Conference of the Netherlands. They welcome 1800+ attendees at Pathé Ede on the 9th of November.
The Aggregate is Dead. Long Live the Aggregate!
by Sara Pellegrini and Milan Savic
DDD's definition of Aggregate may seem somewhat confusing - "An aggregate is a cluster of associated objects that we treat as a unit for the purpose of data changes." Okay, let's try to clarify - "You should consider your aggregate as a unit of consistency in your domain.". That doesn't help either. As a matter of fact, while modeling our systems, we tend to group together events related to the same domain concept; we tend to define groups based on the nouns we find inside our events' name: saying "this is our aggregate!".
According to the aggregate definition, we should instead ignore these nouns, and put together the data that change together.
Easier said than done: in the modeling phase it is easy to make mistakes trying to identify the boundaries of our aggregates based on this rule. Due to the aforementioned reasons (and many others), people struggled with the aggregate pattern. Some even say it is unnecessary, we are one of those. Let's see whether we can model our business constraints without aggregates. Could we be more relaxed when consistency is in question? Join us to discover how!