この問いは、CQRS/ESを触った人なら一度は悩むポイントです。
CQRS/ES のコマンド側をオブジェクトモデルで実装することは可能です。
しかし、イベント書き込み時のロック競合、同時更新の制御、分散環境での一貫性維持といった課題に直面します。
これらを根本的に解決する仕組みが「アクターモデル」です。
集約をアクターとして実装し、クラスタシャーディングによって「1集約=1実体」を保証すれば、
ロックレスかつ逐次的に状態を管理できます。
さらにメッセージ駆動により時間・場所・障害からの分離が得られ、
リアクティブシステムとしてスケールと耐障害性を自然に実現できます。
なぜコマンド側にアクターモデルが適しているのかを、Pekko/Akka を題材に深堀りして解説します。