Skip to content

What PostgreSQL CDC Capture Shape Looks Like

May 2026

PostgreSQL CDC capture shape is logical replication from the WAL, not a query diff. The useful unit is the row-level change emitted through pgoutput.

Short Answer

PostgreSQL CDC capture shape in Skippr is WAL logical replication through the pgoutput plugin. Skippr creates a replication slot and publication, then streams row-level changes. The captured row mutations are INSERT, UPDATE with the full row after image, and DELETE.

A concrete example helps. If row id = 42 changes from status "placed" to "shipped", the useful capture shape is a row-level update from the logical replication stream, not a guessed diff from two queries. That is why PostgreSQL CDC begins with wal_level = logical and a replication-capable user.

Why Teams Struggle with This

Teams sometimes describe PostgreSQL CDC as if it were just another SQL read. The docs describe something much more specific: row changes streamed from the WAL through logical replication with a slot and publication.

  • PostgreSQL CDC requires wal_level = logical.
  • The replication user needs the REPLICATION attribute or superuser privileges.
  • Skippr creates and reuses a replication slot and publication for the CDC stream.
  • Updates are captured as row-level changes with the full row after image.

How Skippr Handles It

Skippr makes the PostgreSQL source path easy to review because the prerequisites, event kinds, and resume behavior are all documented together. That keeps source setup anchored to the actual CDC mechanism instead of to a pile of unrelated PostgreSQL settings.

It also helps on the warehouse side. Once the source stream is clearly row-level logical replication, the destination can reconcile rows using the same row identity and ordering assumptions instead of inventing them later.

  • PostgreSQL CDC uses WAL logical replication with pgoutput.
  • Captured event kinds are INSERT, UPDATE, and DELETE.
  • Skippr creates a replication slot and publication for streaming.
  • The resulting CDC path carries mutation kind and native ordering metadata into the destination contract.

What the First Useful Version Looks Like

If you understand PostgreSQL CDC as logical replication from the WAL, the capture shape becomes much easier to explain. It is a row mutation stream, not a scheduled table comparison.

That is the foundation the rest of the CDC contract builds on.