CDC(変更データキャプチャ)
データベースの行の変更(挿入・更新・削除)をすべて捉え、イベントとして他のシステムへストリーム配信するパターン。多くはデータベースのトランザクションログを利用する。検索インデックス、データウェアハウス、キャッシュ、マイクロサービスへのリアルタイム同期を可能にする。
ログベースのCDCは、Postgresならwal、MySQLならbinlogを読むため、アプリケーションに余計な負荷をかけず、すべての変更を捉えられる。代替手段(劣る方法)はupdated_atのポーリングやトリガーである。ツールにはDebezium(オープンソースで最も普及しており、Kafka Connect上で動く)、Fivetran、AWS DMSなどがある。用途は、ElasticsearchをPostgresと同期させる、データウェアハウスにリアルタイムで供給する、マイクロサービスから確実にイベントを発行する「アウトボックスパターン」など。バッチETLとは異なり、CDCは継続的で行単位である。「データベースをストリームとして扱う」発想を可能にし、あらゆる変更がイベントになる。