サーガパターンのメカニズムでコマンドとリードを段階的に疎結合化する by くどう

CQRS+ESカンファレンス2026
レギュラーセッション

サーガパターンのメカニズムでコマンドとリードを段階的に疎結合化する

yumiKudo_Panda7 くどう yumiKudo_Panda7

コマンドモデルとリードモデルは、段階的に分離していくのが、アーキテクチャの可逆性を担保させる意味でも重要です。

①最初は、論理的には分離されているものの、物理的には1つのDB上でアトミック性を担保する。
②そこから、それぞれに異なるデータ品質要求が来ると、物理的に異なるDBにするものの、通信は同期で連携。(結果整合かつ同期通信
③そこからさらに疎結合化が進むと、両者のモデルは通信も非同期で、完全に独立した状態になります。

この段階的に進めていくためには、
【同期通信かつアトミックなサーガ → 同期通信かつ結果整合なサーガ → 非同期通信かつ結果整合なサーガ】
という風に、アーキテクチャを【※段階的に可逆性を担保させながら】進化させるメカニズムを抑えておく必要があります。

このメカニズムを用いながら、より安全にコマンドとリードを分離していく工程をご紹介します。