イベントストーミング
効果
認識のズレを発見できる
業務ルールや例外を発見できる
システムの責任境界を考えやすくなる
ドメインイベント
業務上すでに起きた重要なできごと
イベントは基本的に過去形で書く。
「〜する」ではなく「〜された」「〜した」にする。
コマンド
誰かがシステムや業務に対して行う操作・依頼です。
イベントを発生させるきっかけになります。
その出来事は何の操作によって起きたのかを考えます。誰かが何を指示したのか、という観点です
コマンドは命令形・操作形で書く。
イベントとの違いは、コマンドは「やること」、イベントは「起きたこと」。
アクター
コマンドを実行する人・役割・外部システムです。
この操作は誰が行うのかを明らかにします。個人名ではなく、役割で考えると整理しやすい
「誰がやるのか」が曖昧だと、権限・責任・運用が曖昧になる。
外部システム
対象ドメインの外側にあり、イベントやコマンドに関係するシステムです。
自分たちの管理範囲の外にあるシステムも、影響があるなら出しておく
ポリシー
あるイベントが起きた後に、次に何をするかを決める業務ルール
「もし〜なら、〜する」という形で表現しやすいです。
イベントが起きたあと、自動的に発生する判断や処理があれば、それをルールとして出す
ポリシーは、業務の暗黙知が出やすい場所
集約
一貫性を守るためのまとまり
あるコマンドを受け取り、ルールを確認し、イベントを発生させる責任を持つ
どの単位で状態やルールを守る必要があるかを見る
業務上、整合性を保ちたいまとまり
Read Model
利用者が見たい画面・一覧・レポートなど、参照用の情報
業務を進めるために、誰がどんな情報を見て判断しているのか
参照モデルは、ユーザーの判断や操作の前提になる
「何を見て、その操作をしているのか」を確認する
ホットスポット
よくわからない点、揉めそうな点、複雑な点、不安な点のメモ
議論が止まりそうなところや、今すぐ答えが出ないところはホットスポットとして残す
ホットスポットは悪いものではない。むしろ、イベントストーミングで見つけたい重要な成果物