Aswin
02/19/2026, 12:16 PMAswin
02/19/2026, 12:16 PMkapa.ai
02/19/2026, 12:16 PMkapa.ai
02/19/2026, 12:17 PMpgoutput, wal2json) converts the WAL’s internal representation into a format that external tools can understand.[[Logical decoding plugins](https://airbyte.com/tutorials/postgresql-change-data-capture-elt)] ### 3. How Airbyte uses this for CDC From the Airbyte side, the documented behavior is: 1. Initial sync (snapshot) - Airbyte does not use WAL for the initial load. - It runs SELECT queries to take a snapshot of the current table contents; this is “effectively a Full Refresh”.[[CDC overview](https://docs.airbyte.com/platform/understanding-airbyte/cdc)] - Changes that happen during this snapshot are not read from WAL. 2. Subsequent syncs (log‑based incremental) - Airbyte “reads data from the previously synced position in the logs up to the start time of the sync.”[[CDC overview](https://docs.airbyte.com/platform/understanding-airbyte/cdc)] - It keeps track of the current log position (e.g. LSN) between syncs.[[CDC overview](https://docs.airbyte.com/platform/understanding-airbyte/cdc)] - Only changes made via `DELETE`/`INSERT`/`UPDATE` are captured; operations like `TRUNCATE`/`ALTER` are not.[[CDC limitations](https://docs.airbyte.com/platform/1.6/understanding-airbyte/cdc)] 3. What the records look like - Airbyte outputs records for `INSERT`/`UPDATE`/`DELETE` in a unified format and adds CDC metadata columns such as: - _ab_cdc_lsn / `_ab_cdc_cursor`: log position where the record was retrieved. - `_ab_cdc_updated_at`: transaction timestamp. - `_ab_cdc_deleted_at`: present only for deletes.[[CDC overview](https://docs.airbyte.com/platform/understanding-airbyte/cdc)] 4. Orchestration model - CDC sources are not treated as infinite streams; Airbyte runs discrete syncs on a schedule and, in each sync, reads from the last stored log position up to “now”.[[CDC overview](https://docs.airbyte.com/platform/understanding-airbyte/cdc)] ### 4. What’s not fully documented The knowledge sources do not provide: - Low‑level details of how Debezium is invoked, how exactly it maps WAL messages to Airbyte records, or how internal offsets are stored. - A step‑by‑step description of every internal component in the Airbyte Postgres connector. They only state that: - Airbyte uses Debezium internally for CDC.[[CDC sync tutorial](https://airbyte.com/tutorials/incremental-change-data-capture-cdc-replication)] - It relies on logical replication of WAL via a replication slot and logical decoding plugin (e.g. pgoutput).[[Cloud SQL Postgres CDC](https://docs.airbyte.com/integrations/sources/postgres/cloud-sql-postgres#advanced-setup-using-cdc); [Logical decoding plugins](https://airbyte.com/tutorials/postgresql-change-data-capture-elt)] So if you’re looking for a full internal architecture diagram of the connector, that level of detail is not present in these docs. For that, you’d need to inspect the connector’s source code and Debezium’s own documentation, which go beyond what’s included in the provided knowledge sources.Aswin
02/23/2026, 10:30 AMkapa.ai
02/23/2026, 10:30 AM