この質問をもらったのですが、かなり長くなってしまったので、ブログ記事にしました。今年一発目のブログ記事〜! 質問者さんは、よい視点をお持ちですね。 ちょっと前のポストにも関係しそう。 結論から言うと、“強い整合性” を保ちたい範囲は集約 (Aggregate) の境界で考え、複数の集約間で発生する “弱い整合性” はユースケースやサーガ (Saga)・プロセスマネージャーなどで扱う、というのがDDDの典型的なアプローチです。(特にマイクロサービス文脈やRDBMS以外のストレージを混ぜて使う場合にこのような方法を取ることが多いです) 強い整合性と集約の境界 ここでいう「強い整合性」は、RDBMS等のACIDトランザクションで一貫性を保ちたい範囲を指します(RDBMS以外であっても、ACIDほど強いトランザクションがなかったりしますが、似たような考え方になると思います)。 DDDにおいて集約は