Comparisons

Pairs that get conflated in real conversations. Neither column wins — what decides is the requirement, and each record leads with the confusion, because the confusion is the reason the record exists at all.

CDC vs Polling

What people get wrong about this pair

Polling is treated as the simple version of the same thing. It is a weaker guarantee: it cannot see deletes, it cannot see intermediate states, and its predicate depends on a clock that is not monotonic under concurrency.

Change data capture
Use it when

You need every change including deletes, you must not load the source table, and you control the database enough to read its log.

Polling on a timestamp
Use it when

The source is a system you do not control, you have no log access, and missing intermediate states is acceptable.

DimensionChange data capturePolling on a timestamp
DeletesCapturedStructurally invisible — the row is gone
Intermediate statesEvery committed changeOnly the last state before the poll
Load on the sourceReads a log the database already writesA repeated query against the table
Correctness riskRetention expiry, ordering across tablesRows committing after their timestamp was assigned, and clock skew
Access requiredReplication or log-read privilegesOrdinary SELECT
Failure modePermanent loss past retentionSilent, unbounded gaps nobody notices