メインコンテンツまでスキップ

🧩 Change Data Capture(CDC)

CDC(Change Data Capture)は、データベースの変更をリアルタイムに検知し、イベントとして外部へ配信する構造 を提供する仕組みである。

✅ このスタイルの概要

DB の変更(INSERT / UPDATE / DELETE)をログレベルで取得し、
アプリケーションを経由せずにストリームへ反映する。

✅ 解決しようとした問題

  • DB を変更したのに、アプリ側がイベントを発火し忘れる
  • アプリが関与するフローが複雑化し、整合性が保てない
  • 高スループットのイベント生成にアプリが耐えられない

CDC により、アプリを介さず DB の変更が確実にイベント化される。

✅ 基本思想・構造

  • DB のログ(WAL・binlog)を読み取る
  • 変更差分をイベントとして配信
  • アプリへの変更は不要(DB が唯一の truth source)

✅ 得意なケース

  • 大量データの非同期複製
  • イベント生成をアプリに書きたくない
  • データパイプライン/分析基盤への即時反映

❌ 不向きなケース

  • DB のスキーマ変更が頻繁にあり不安定
  • 強整合で同期処理すべてを制御したい場合

✅ 関連スタイル

  • Outbox Pattern(アプリ経由 vs DB 経由の違い)
  • Event Sourcing(イベントをデータの真実とする思想)
  • EDA(Event-driven 全般)

✅ まとめ

CDC は DB 主導のイベント生成 により、整合性とスケールを両立する仕組みである。
アプリケーションが複雑になりがちなイベント生成を DB にオフロードできる点で、現代的データアーキテクチャの中心技法となっている。