Change data capture tools compared: 12 CDC tools and change data capture software
Twelve tools lined up by the thing that actually decides the project: how each one detects a change. Log-based CDC reads the write-ahead log and costs you replication slots and log retention. Query-based sync reads a watermark column and costs you nothing but latency. This page shows which tool does which, what you must turn on in Postgres, MySQL, SQL Server, Oracle and MongoDB, and where a flat-price platform is the wrong answer.
Field mapping auto-plugged · tap a port to rewire
Plug a source port into
Transform on this cable
JSON in
JSON out
5 sample records ready
Engine behavior verified against vendor docs, August 2026 · Last updated August 2026
Which change data capture tool should you use?
Pick by method first and vendor second. If you need sub-minute latency, hard deletes and a real event stream, use log-based CDC: Debezium if you run Kafka, Confluent Cloud or Estuary Flow if you want the same semantics managed, AWS DMS inside AWS, Google Datastream into BigQuery, and Striim, Qlik Replicate or Oracle GoldenGate for Oracle and SAP estates. If the destination is a warehouse and you want breadth over control, Fivetran and Airbyte are the defaults, and the Snowflake ETL tools page narrows that shortlist if Snowflake is where the changes are landing. When both ends are PostgreSQL, skip this category altogether and use Postgres logical replication, which is native, free and already installed. If minute-level or hourly freshness is genuinely enough, skip log-based CDC entirely and run scheduled incremental extraction on a watermark column, which is what Adapters does for a flat $49 to $399 a month.
The expensive mistake in this category is buying real-time when the business needs current-by-9am. Log-based CDC is not free: it adds privileges, log retention rules, replication slots and a capture process that can stall and take a production disk with it. If you are still deciding on the wider pipeline shape, the difference between ETL and ELT is the other half of this decision, and the ETL tools page covers the load side.
Change data capture tools compared
Pricing models, not price tags. Half of this list is quote-only and every published number moves, so the billing model is the honest comparison. The one set of real prices here is ours.
| Tool | CDC method | Sources | Delivers to | Pricing model | Best for |
|---|---|---|---|---|---|
| Debezium | Log-based | MySQL, PostgreSQL, MongoDB, SQL Server, Oracle, Db2, Cassandra, Informix | Kafka, Pulsar, Kinesis, or embedded in your app | Open source, Apache 2.0; you pay for infrastructure and people | Engineering teams that already run Kafka and want full control of the stream |
| Fivetran | Log-based plus API extraction | Databases plus a very large managed SaaS catalog | Snowflake, BigQuery, Redshift, Databricks and other warehouses | Monthly active rows, plus a base charge per connection | Warehouse teams that want breadth and can absorb a usage meter |
| Airbyte | Log-based for databases, API for SaaS | Large connector catalog, community and certified tiers | Warehouses, lakes, object storage, some reverse destinations | Open source self-hosted, or Cloud billed by credits | Teams that want connector breadth with an escape hatch to self-host |
| AWS DMS | Log-based ongoing replication | Most commercial and open source engines, on-premise or RDS | RDS, Aurora, Redshift, S3, Kinesis, OpenSearch | Pay for the replication instance and storage you run | AWS-native migrations and continuous replication inside one account |
| Google Datastream | Log-based serverless CDC | MySQL, PostgreSQL, Oracle, SQL Server | BigQuery and Cloud Storage | Usage based on data processed | Shops standardized on BigQuery that want no replication servers |
| Estuary Flow | Streaming log-based CDC | Databases plus SaaS, with concurrent backfills | Warehouses, lakes and Kafka-compatible consumers | Usage based, by connector and data volume | Streaming-first pipelines without operating Kafka yourself |
| Striim | Log-based with in-flight stream processing | Oracle, SQL Server, SAP HANA, PostgreSQL, MySQL and more | Warehouses, messaging, applications | Enterprise subscription, quote only | Oracle and SAP estates that need transformation inside the stream |
| Qlik Replicate | Log-based, agentless | Broad enterprise coverage including mainframe sources | Warehouses, lakes, Kafka | Enterprise subscription, quote only | Governance-heavy replication programs across mixed legacy estates |
| Oracle GoldenGate | Log-based, heterogeneous | Oracle first, plus other major engines | Oracle and non-Oracle targets, including cloud | Oracle licensing, per processor or cloud service | Oracle-centric shops with zero-downtime and HA requirements |
| Confluent Cloud | Managed Debezium-based connectors | MySQL, PostgreSQL, SQL Server, Oracle, MongoDB | Kafka topics, then anything downstream of Kafka | Usage based across cluster, connector and throughput | Teams that want Debezium semantics without running Kafka Connect |
| Hevo Data | Log-based for databases, API for SaaS | Databases plus a wide SaaS catalog | Warehouses and a small set of operational targets | Tiered plans metered by events | Smaller teams that want a managed pipeline with a self-serve start |
| Adapters | Scheduled incremental extraction, watermark and log-aware | Postgres, MySQL, SQL Server plus Stripe, Shopify, Salesforce, NetSuite and more | Snowflake, BigQuery, Redshift, Postgres and business applications | Flat monthly tiers, $49 to $399, with record allowances | Ops, finance and data teams that want minute-level sync on a fixed bill |
Vendor terms change. Confirm current pricing and connector coverage with each vendor before you buy. Adapters' own prices are public on the pricing page: Starter $49, Growth $149, Scale $399, Enterprise custom.
The four ways a tool can detect a change
Every product in the table above is one of these four techniques with a control plane around it. Choose the technique your latency requirement actually needs, then shortlist the vendors that implement it.
| Method | How it detects change | Latency | Load on source | Catches deletes | Cost to run |
|---|---|---|---|---|---|
| Log-based CDC | Reads the write-ahead log, binary log or transaction log the database already writes | Seconds to minutes | Very low; no queries against your tables | Yes, including hard deletes | Highest setup cost: privileges, log retention, replication slots |
| Trigger-based CDC | Database triggers write every change into a shadow audit table | Seconds | High; every write does extra work inside the transaction | Yes | Moderate setup, ongoing write penalty, schema maintenance forever |
| Query-based, timestamp or watermark | Polls for rows where updated_at or a sequence is greater than the last run | Minutes to hours, whatever the schedule is | Moderate; needs an index on the watermark column | No, unless the application soft-deletes | Lowest setup cost, works on any database, no special privileges |
| Full snapshot and diff | Re-reads the whole table and compares it with the last copy | Hours | Highest; a full table scan every run | Yes, by absence | Trivial to build, stops scaling somewhere around a few million rows |
Rule 01
Deletes decide it
A watermark query cannot see a row that no longer exists. If your source hard-deletes and your reports have to match, you need log-based CDC or a periodic reconciliation pass. This single question eliminates half the shortlist in most projects.
Rule 02
Latency is a business number
Write down who is waiting for the data and how long they can wait. Fraud scoring needs seconds. A finance dashboard needs the number to be right at 9am. Those are different products at very different prices, and teams routinely buy the first when they needed the second.
Rule 03
Somebody owns the slot
Log-based CDC creates a persistent object on your production database that retains log files until a consumer reads them. That is an operational responsibility with a pager attached. Ask who holds it before the pilot, not after the first disk alert.
What you have to turn on, database by database
CDC is not a feature you buy, it is a feature you enable on the source and then consume. Every row below was checked against the vendor's own documentation in August 2026. The last column is the part that surprises people in week three.
| Database | Mechanism | What you enable | Verified detail | Main gotcha |
|---|---|---|---|---|
| PostgreSQL | Logical decoding over the write-ahead log | wal_level = logical, a publication, and a logical replication slot | max_replication_slots and max_wal_senders both default to 10 | max_slot_wal_keep_size defaults to -1, so a slot may retain unlimited WAL |
| Amazon RDS for PostgreSQL | Same logical decoding, exposed through RDS parameters | Set the static parameter rds.logical_replication to 1, then reboot | RDS ships the test_decoding and wal2json output plugins; you need the rds_replication role | AWS warns that a slot nobody reads from can quickly fill instance storage |
| MySQL | Row-format binary log | Binary logging on, ROW format, full row images, a replication user | In MySQL 8.4 binlog_format defaults to ROW and binlog_row_image defaults to full | binlog_expire_logs_seconds defaults to 2592000, so logs vanish after 30 days |
| SQL Server | Native CDC capture job reading the transaction log via sp_replcmds | Enable CDC per database and per table; SQL Server Agent must be running | Capture scans up to 1,000 transactions per cycle with a 5 second wait; cleanup runs daily at 2 AM and retains 4,320 minutes | With CDC on, the log truncation point will not advance until capture has read the changes, even in SIMPLE recovery |
| Oracle | Redo log mining through LogMiner or XStream | Supplemental logging, archivelog mode, and a mining privilege set | Debezium supports both the LogMiner and XStream adapters | XStream requires a GoldenGate license, which changes the economics of the project |
| MongoDB | Change streams built on the replica set oplog | A replica set or sharded cluster, plus read privileges on the oplog | Resume tokens let a consumer restart where it stopped | If the oplog rolls over past your resume token, you have to snapshot again |
Two of those gotchas are the ones that page people at night. In PostgreSQL, a replication slot holds write-ahead log files until the consumer confirms it has read them, and because max_slot_wal_keep_size defaults to -1 there is no ceiling on how much it will hold. Stop the consumer on a Friday and the pg_wal directory grows all weekend. In SQL Server, enabling CDC means the log truncation point will not advance until the capture process has gathered the changes, even in SIMPLE recovery, so a stalled capture job fills the disk on the production instance and a manual CHECKPOINT will not save you. Both failures look like a storage incident, not a pipeline incident, which is why they get found late. The per-database walkthrough for Postgres, including the RDS parameters and the plugins Amazon actually ships, is in the guide on Postgres change data capture.
Where Adapters is the wrong tool
We sell scheduled incremental sync on a flat bill. That is a genuinely different product from a streaming CDC platform, and there are five jobs where you should buy something else.
-
You need sub-second latency. Fraud scoring, live inventory and operational alerting want a stream, not a schedule. Debezium, Confluent Cloud or Estuary Flow are the right shape for that, and no amount of tightening a schedule gets you there.
-
Your source is Oracle, Db2, SAP HANA or a mainframe. We do not read those logs. Oracle GoldenGate, Qlik Replicate and Striim have spent years on exactly that problem and they will do it better than anyone new to it.
-
You need hundreds of obscure SaaS sources. Fivetran and Airbyte maintain catalogs far larger than ours. If the requirement is one platform for every long-tail API in the company, connector breadth beats flat pricing.
-
You already run Kafka and want to own the stream. Debezium is free, Apache 2.0, and gives you the raw change events with before and after images. If you have the platform team, self-hosting is cheaper and more flexible than any managed product.
-
The whole job is one nightly warehouse load at low volume. If a free tier or a cheap usage plan covers you and the bill never moves, a metered vendor can be less expensive than our Starter tier. Flat pricing wins when volume is large or unpredictable, not when it is tiny.
Six questions to ask before you sign
Question 01
Does it catch hard deletes?
Ask for the exact behavior, not a yes. Some tools emit a delete event, some write a soft-delete flag in the destination, and some silently leave the row behind forever.
Question 02
What happens on schema drift?
A new column, a renamed column and a type change are three different events. SQL Server's own CDC ignores columns added after the capture instance was created, which is a real trap.
Question 03
How does the first backfill work?
Historical loads are where usage-billed vendors get expensive and where locking arguments start. Ask whether the snapshot is concurrent with streaming, and what it does to the source.
Question 04
Where does the bill go at 3x volume?
Model a busy month, a resync and a backfill. Row-metered and event-metered plans move fastest, and a resync you did not plan is the invoice nobody budgeted.
Question 05
What does a failure look like?
You want per-record errors, retries with backoff, and an alert that reaches a human. Silent partial success is the failure mode that destroys trust in a pipeline.
Question 06
Who runs it in month six?
Self-hosted CDC has no license cost and a permanent staffing cost. Managed CDC inverts that. Price both honestly, including the engineer who owns the replication slots.
Questions buyers ask about change data capture tools
- What are the best change data capture tools?
- There is no single best one. Debezium is the standard for self-hosted log-based CDC into Kafka. Fivetran, Airbyte and Google Datastream lead managed database-to-warehouse replication. AWS DMS is the default inside AWS. Striim, Qlik Replicate and Oracle GoldenGate own the Oracle and SAP enterprise tier. Adapters covers scheduled incremental sync when you want a flat bill instead of a meter.
- What is change data capture?
- Change data capture is a set of techniques for detecting inserts, updates and deletes in a source database and forwarding only those changes to another system. Instead of re-reading the whole table on every run, a CDC tool reads the database transaction log, or a trigger table, or a timestamp column, and moves just the rows that moved.
- How do change data capture tools work?
- Most read the database write-ahead log directly. PostgreSQL exposes it through logical decoding and a replication slot, MySQL through the binary log, and SQL Server through a capture job that calls sp_replcmds against the transaction log. The tool turns each logged change into an event with a before and after image, then delivers it to a queue, a warehouse or another application.
- What is the difference between CDC and ETL?
- CDC is how you extract, ETL is the whole pipeline. A traditional ETL job re-reads a table or a date range on a schedule. A CDC-based pipeline subscribes to the change stream so the extract step reads only what changed, which cuts source load and shortens latency. Most CDC products are ETL or ELT tools whose extract step happens to be log-based.
- What are the open source change data capture tools?
- Debezium is the dominant open source option, licensed Apache 2.0, with source connectors for MySQL, PostgreSQL, MongoDB, SQL Server, Oracle, Db2, Cassandra and Informix, plus incubating connectors for Vitess and Spanner. Airbyte ships an open source edition with log-based CDC for the main databases. Both trade licensing cost for infrastructure you have to run.
- Does Postgres support change data capture?
- Yes. PostgreSQL has native logical decoding: set wal_level to logical, create a publication, and a replication slot streams every committed change through an output plugin such as pgoutput or wal2json. It is genuine log-based CDC with no triggers. The care point is that an unread slot retains write-ahead log files indefinitely by default.
- Is change data capture worth it?
- It pays off when the table is large, the source is production, or the destination needs to be current within minutes. It is overkill when a nightly incremental load on an updated_at column already meets the requirement. Log-based CDC adds real operational surface: replication slots, log retention, schema drift and a capture process that can stall.
Working on a specific pair? The database lanes with the most CDC questions attached are Postgres to Snowflake, SQL Server to Snowflake, MySQL to Snowflake and Postgres to BigQuery. For the category above this one, see best data integration tools and the iPaaS platforms comparison, or read what iPaaS means if the requirement is keeping two business applications in agreement rather than loading a warehouse. If you are weighing a build against a purchase, the build versus buy math applies directly to self-hosted Debezium. On AWS that math has shifted, because zero-ETL replicates Aurora, RDS and DynamoDB into the warehouse without a CDC pipeline at all, as Redshift ETL tools sets out. CDC is how changes leave a production database; getting the modeled result back out of the warehouse and into an application is the opposite trip, covered on reverse ETL tools.
Sync your database on a schedule you control
Map the fields once, pick an interval, and let it run with retries, alerts and per-record logs. Flat price from $49 a month, no row meter.
No credit card required.