- URL: (3) Xユーザーの加藤潤一(かとじゅん)さん: 「CQRS/ESのコマンド処理がどうなるかのイメージ」 / X
- 著者: 加藤潤一 ( @j5ik2o)
- 公開日: 2025-01-10
いつ読むか?
読書メモ
CQRS/ESのコマンド処理がどうなるかのイメージ: 訂正注文の場合 1. 入力検証を行い、訂正注文の値オブジェクト(注文ID、注文数など)を取得する 2. イベントストアから取得したスナップショット+差分イベントを使って、注文集約の最新状態を再現する(リプレイ、再生) 3. 取得した値オブジェクトを注文集約の訂正メソッドに渡し、結果をEither/Resultなどで受け取る 4. 成功なら新しいドメインイベント(訂正注文イベント)と集約が生成されるため、イベントストアにイベントを追記し、必要に応じてスナップショットを更新する(パーティションを意識した書き込みや、楽観的ロックによって不整合となるイベントの追記を検出する仕組みが必要があります) 5. 最後に処理結果をレスポンス形式に変換して返す イベントストア周りのハンドリング大変そうでしょ?なので、そういうライブラリを作ってます。 もちろんAkka/Pekko/Proto .Actorでも同様に解決できますが、これらはアクターモデルが前提、クラスベースでやりたいなら僕のライブラリでできます。 https://github.com/j5ik2o/event-store-adapter