Glossary

Change Data Capture

Streaming a database's row-level changes out to other systems as an ordered event feed.

1 min read·4 sections
Open the interactive version → diagrams, practice & more

Definition

Streaming a database's row-level changes out to other systems as an ordered event feed.

How it works

Instead of polling or dual-writing, you tail the DB's commit log (e.g. Postgres WAL, MySQL binlog) with a tool like Debezium and publish each insert/update/delete to Kafka. Used to keep caches, search indexes and data warehouses in sync, and to evolve a monolith toward events without touching app code.

Common questions

What is Change Data Capture?

Streaming a database's row-level changes out to other systems as an ordered event feed.

How does Change Data Capture work?

Instead of polling or dual-writing, you tail the DB's commit log (e.g. Postgres WAL, MySQL binlog) with a tool like Debezium and publish each insert/update/delete to Kafka. Used to keep caches, search indexes and data warehouses in sync, and to evolve a monolith toward events…

What is Change Data Capture used for in system design?

Instead of polling or dual-writing, you tail the DB's commit log (e.g. Postgres WAL, MySQL binlog) with a tool like Debezium and publish each insert/update/delete to Kafka. Used to keep caches, search indexes and data warehouses in sync, and to evolve a monolith toward events…

Part of Glossary on SystemLore — system design explained with 148 deep topics, interactive diagrams, and a build-it-yourself game. Browse the glossary and "X vs Y" comparisons, or build this one →