Change data capture (CDC) is a technique that watches a database and captures every insert, update and delete as it happens, then passes those changes on to other systems. Instead of copying a whole table over and over, it moves only what actually changed.
Picture a busy warehouse with a logbook at the door. Rather than counting every item on the shelves each night, you just read the day’s log of what came in and what went out. CDC reads the database’s own change log in the same way, which is why it can keep a data warehouse up to date in near real time without hammering the live system. It often sits at the start of a data pipeline, feeding fresh changes to everything downstream.
Most tools do this by tailing the transaction log, the file the database already writes to track every change. Debezium with Postgres or MySQL is a common open-source choice, and many managed databases expose a log feed of their own. Because it reads a file the database keeps anyway, CDC adds almost no extra query load, which is its big advantage over polling the tables on a timer.
This matters most when two systems must agree quickly, for example an online store and its stock dashboard. There is usually a short delay before every copy matches, a normal trait known as eventual consistency. For most businesses a few seconds of lag is fine, and far better than waiting for a nightly batch. The trade-off is operational: a CDC stream is a moving part that needs monitoring, and a missed event can quietly drift two systems apart.
At TopDevs we reach for CDC when a client needs their reporting or search to reflect what happened minutes ago, not yesterday.