https://martinfowler.com/bliki/DDD_Aggregate.html

集約(アグリゲート)はドメイン駆動設計のパターンです。 DDDにおける集約はひとまとまりとして扱えるようなドメインオブジェクトの小集合です。 例えば、「注文」と「品目」は別々のオブジェクトになりますが、注文を(品目と一緒に)集約として扱うと便利になります。

集約はひとつのコンポーネントであるオブジェクトを集約ルートとして持ちます。 集約の外部からの参照は集約ルートにのみ行くべきです。 このようにして、集約ルートは集約全体としての整合性を保証します。

集約はデータストレージ転送の基本要素となります - 集約の単位でロードや、保存を要求します。 トランザクションは集約の境界は超えてはいけません。

DDDにおける集約はたまにコレクションクラス(リスト、マップなど)と混同されてしまいます。 DDDにおける集約はドメインコンセプト(注文、診察受診、プレイリスト)ですが、コレクションはもっと一般的なものです。 多くの場合、集約には簡単なフィールドと複数のコレクションが含まれます。 「集約」の言葉は一般的に使用され、様々なコンテキスト(UMLなど)で使用されますが、その場合はDDDにおける集約とは違うものを指します。

もっと詳しく知りたかったら、DDD本を参照してください。

translated by @ko-flavor