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]