How Kafka CDC Resume Behavior Works
May 2026
Kafka CDC resume behavior in Skippr is built on Kafka consumer offsets. The stable consumer group is the durable position, not a separate custom cursor file.
Short Answer
Kafka CDC resume behavior in Skippr relies on Kafka consumer-group offsets. The docs say Skippr uses a stable group_id derived from the project name, and Kafka offset tracking provides durable resume. On restart, consumption resumes from the last committed offset.
That is an important distinction from source systems that need a custom per-source cursor. In Kafka, the durable position is the committed consumer-group offset. If the group stays stable, the broker-side offset tracking does the resume work.
Why Teams Struggle with This
Resume sounds simple until a team treats Kafka like a stateless subscription. The supported behavior is more specific: restart depends on the same stable consumer group and the committed offsets associated with it.
- The docs describe a stable
group_idas part of the CDC source setup. - Resume is tied to the last committed offset, not to a best-effort guess at what was already processed.
- Kafka provides the durable offset store, which means restart behavior depends on the consumer-group contract.
- The general CDC guarantee still stops if the source retention window expires before the runner resumes.
How Skippr Handles It
Skippr keeps the Kafka restart story pleasantly boring. Instead of inventing a custom cursor format, it uses the native consumer-group mechanism that Kafka already provides and documents that choice explicitly.
That is useful operationally and conceptually. The same committed boundary that controls what the consumer has acknowledged is the boundary the warehouse side can treat as source progress.
- Skippr derives a stable Kafka
group_idfrom the project name. - Kafka consumer-group offset tracking provides the durable resume position.
- Restarts resume from the last committed offset.
- Resume behavior stays aligned with committed source ownership of events.
What the First Useful Version Looks Like
Kafka restart behavior is easiest to understand when you stop looking for a custom Skippr cursor. The durable cursor is the consumer-group offset that Kafka already knows how to manage.
That keeps restart logic simple as long as the group identity stays stable.
