Aggregates are one of the more
challenging aspects of tactical modeling. Developers often end up
with large clusters of objects that do not give good performance and
scalability. In this three-part series, Vaughn Vernon walks through
some common design pitfalls, discusses the pros and cons of various
aggregate modeling choices, and provides rules of thumb to guide
modeling of aggregates. He de-emphasizes such concerns as navigation
through object graphs and instead focuses on digging out real
consistency constraints in the business domain, with tips to help the
team sift through the usual pile of competing use-cases.
Vaughn's concrete rules spell out the current consensus view of DDD leaders on the style of aggregates that help place development on a more solid footing.
Part I considers the modeling of an aggregate [Read Part I (.pdf)]
Part II looks at the model and design issues of how different aggregates relate to each other. [Read Part II (.pdf)] [View Vaughn's 12-Dec-2011 presentation on Part II at the Denver/Boulder DDD Meetup]
Part III discusses the discovery process: how to recognize when a design problem is a hint of a new insight, and how different aggregate models are tried and then superseded. [Read Part III (.pdf)] [View Vaughn's 13-Feb-2012 presentation on Part III at the DDD Denver Meetup]