Queues, Streams, Eventing
Change data capture: multiple-choice review
Six questions that cut across the whole unit. Each one mirrors a decision you make running CDC in production — not a definition to recite, but a failure mode to reason about before it pages you.
Confirm you can connect the slot mechanism, WAL retention, snapshot strategy, delete capture, and delivery semantics — the synthesis the lesson built toward.
A Debezium connector's Kafka Connect worker OOMs and stays down for six hours on a busy OLTP box. What is the dominant risk to the source Postgres, and why?
Your CDC connector looks completely healthy — consuming, lag near zero — yet WAL on the primary keeps climbing and the disk is filling. What is the most likely cause?
You must bootstrap CDC on a multi-terabyte MySQL table that takes constant writes, and you cannot freeze writes for hours. Which snapshot strategy fits, and what is the tradeoff?
A Postgres DELETE event arrives with a before image that contains only the primary key, but your downstream needs the full pre-delete row. What is going on, and what is the cost of the fix?
Your team says 'Debezium 2.x gives exactly-once, so our consumer can skip dedupe.' Where does that reasoning break?
A consumer joins changes from an orders table and a payments table and assumes it sees them in commit order. Under Debezium-to-Kafka, why is that assumption unsafe?
Across the unit the through-line is one chain of consequences: the slot’s unconditional WAL promise is what makes CDC resumable and also what fills the disk when a consumer stalls or a long transaction freezes restart_lsn; bootstrapping means snapshot-then-stream, with incremental snapshots trading simplicity for a lock-free start; capturing full deletes costs WAL volume via REPLICA IDENTITY FULL; and because resume is at-least-once with only per-key ordering, consumers must be idempotent and must not assume global commit order.