• Aggregates Aggregate is a specific type of Entity
    • An Aggregate is a collection of domain objects bound to a root entity.
    • The root entity is called the Aggregate root.
    • Objects in an aggregate can be treated as a single unit.
    • Access to objects in the aggregate must go through the aggregate root.
    • Transaction should not span multiple Aggregate Roots.
    • Aggregates are good candidates for distribution in a Reactive System.
  • Determining the Aggregate Roots
    • Choosing an aggregate root is not always straightforward.
    • the aggregate root can be different from one context to another.
    • some contexts may require multiple aggregate roots.
    • some questions to consider:
      • is the entity involved in most operations in that bounded context?
      • if you delete the entity, does it require you to delete other entities?
      • will a single transaction span multiple entities?