くどう
yumiKudo_Panda7
CQRSを取り入れる際、コマンドモデルとリードモデルとの連携はどう考えましょう?
いきなり非同期にしますか? 2つのモデルは、異なるネットワークセグメントに配置しますか?
たしかにそれだと、セキュリティなどの観点から見たら、爆発半径が限定され安心かもしれません。
でもそれだと、チームはCQRSという1つの複雑さ以外にも、
・データラグによるUX低下という問題への対処
・コマンドモデルとリードモデル間のコントラクトが不確実
といった、複数の複雑な概念に向き合わなくてはならなくなり、学習効果も低下します。
そこでセキュリティリスクを意図的に許容し、「同期から始め、徐々に非同期へ」という、
段階的にコマンドとリードを配置モデル上でも分離するためのプロセスや注意点をご紹介します。