Upgrade to Pro — share decks privately, control downloads, hide ads and more …

5分で分かる DCB (Dynamic Consistency Boundary)

Avatar for Takashi Kawae Takashi Kawae
September 18, 2025
14

5分で分かる DCB (Dynamic Consistency Boundary)

イベントソーシング・CQRS 勉強会 #4
https://sekiban.connpass.com/event/366333/

株式会社ジェイテックジャパン
Developer Advocate for Sekiban 川江貴志

DCB (Dynamic Consistency Boundary) とは何か、またそれがイベントソーシングにどんな影響をもたらすのか、提唱者である Sara Pellegrini 氏の考察をもとに概説します。

Avatar for Takashi Kawae

Takashi Kawae

September 18, 2025
Tweet

Transcript

  1. DCB (Dynamic Consistency Boundary) の概要 Sara Pellegrini 氏が提唱した概念 https://sara.event-thinking.io/2023/05/dynamic-consistency-boundary.html https://dcb.events/

    の説明によると、 ‟ 動的一貫性境界 (DCB) は、厳格なトランザクション境界に依存せずに イベント駆動型システム (event-driven systems) の一貫性を強制する手法” 注目ポイント i. イベントを1つ以上のタグに紐づけることで、 技術上の制限のない純粋なビジネス事実として扱う ii. 条件に合致するイベントだけを取得・再生することで、 柔軟で負荷の低いデータ読み出しを行う
  2. events + lastEventId state newEvents なし→ 保存 あり→ リトライ Event

    Store イベントID: ...590, 591, 592 Query 必要最⼩限のイベントを取得 lastEventId = 592 を記憶 Projection イベントから状態を再構築 Validation ビジネスルール検証 OK → 新イベント作成 Conditional Append 整合性チェック 592 の後に新イベントはない? Event Store 新イベント保存 → 593 DCB の処理フロー イベントタイプやタグによって絞り込んだ必要最小 限のイベントだけを読み込む (動的なクエリ) 例: コース名が変更されたイベントは、 コースが満員かどうかの判断には不要 プロジェクションで状態を再構築する (Decision Model) Decision Model でビジネスルールによる検証を行う 取得している最後のイベントの後に新たにイベント が追加されていないか確認し、なければイベントを 書き込む (整合性の確保)