Domain Driven Design for Rails Developers. Part 3: Aggregates.
You start with nicely designed groups of objects. All the objects have clear responsibilities, and all interactions among them are explicit. Then, you have to consider additional requirements, such as transactions, integration with external systems, event generation. Soon you end up with a bunch of interconnected objects without clear boundaries. Maintaining this mess becomes harder and harder. Thankfully, Domain Driven Design provides a good remedy for this situation: Aggregates. Read more