Skip to content

CDC Guarantees

Install

See the Install guide for the full setup, including Windows PowerShell.

curl -fsSL https://install.skippr.io/install.sh | shClick to copy

Installing Skippr means accepting the Skippr EULA.

This page describes Skippr's CDC contract. Use it together with CDC Overview, CDC Sources, and CDC Destinations.

Two CDC outcomes

ContractWhat you getWhen it applies
Exactly-once final stateReplays, retries, and restarts converge on the correct final row state in the destinationSource and destination both support final-state reconciliation
CDC-encodedMutation events land with CDC metadata so downstream consumers can reconcile themDestination can land CDC faithfully but cannot maintain final-state reconciliation itself

Core terms

TermMeaning
Business keyThe columns that uniquely identify a logical row for reconciliation. It is resolved per namespace/table from cdc.default plus overrides.
Event identityThe token that says two source events are the same event
Order tokenThe token used to decide which mutation is newer
TombstoneA delete record stored alongside the table so older inserts cannot resurrect deleted rows

What exactly-once final state means

  • A committed change batch can be replayed safely.
  • An older mutation cannot overwrite a newer row because order tokens are compared during apply.
  • A replayed or out-of-order insert cannot resurrect a deleted row if the tombstone is newer.
  • Restart resumes from committed ownership of source events, not from an advisory hint alone.
  • A resolved business key contract is required because reconciliation is defined per logical row, not per file or batch.

Defaults and table overrides

Skippr can discover namespaces/tables while a pipeline runs. cdc.default supplies the business key contract for newly discovered tables, and cdc.namespaces.<name> overrides that default when one table has different keys or null-key policy.

This means you do not need to know every table ahead of time, but every table that reaches an exactly-once final-state sink must resolve to a concrete business key contract before its CDC batch is applied.

Where the guarantee stops

  • It does not mean the pipeline never retries internally.
  • It does not mean every destination supports final-state reconciliation.
  • It does not choose business keys for you.
  • It does not guarantee correctness if source retention expires before the runner resumes.

Ordering model

For final-state reconciliation to work, the source must provide order tokens that are meaningfully comparable:

  • globally across the source, or
  • consistently within each business key

If a destination cannot use that ordering model, Skippr uses CDC-encoded instead of the final-state contract.

Where to go next

Install

See the Install guide for the full setup, including Windows PowerShell.

curl -fsSL https://install.skippr.io/install.sh | shClick to copy

Installing Skippr means accepting the Skippr EULA.