Updated November 9, 2026
Change data capture tools read a database’s own change log and replay every committed insert, update, and delete somewhere else, in order. Postgres exposes that log through logical replication, MySQL through the binlog, SQL Server through change tables, Oracle through redo, and MongoDB through change streams. Nine tools lead in 2026. Filament by Galaxy, Debezium, and PeerDB are engines you run yourself. Estuary, Fivetran, and Airbyte are managed pipelines priced by gigabyte, row, or credit. AWS DMS, Striim, and Qlik Replicate are enterprise suites. The right pick depends on which logs a tool reads, how it recovers after a crash, and where it is allowed to run.
The best change data capture tools in 2026, ranked
The ranking is for the most common reader of this page, a team that reads Postgres or MySQL, lands changes in a database, warehouse, or lake, and would rather run the tool than rent it. A team on Oracle or SQL Server should read the coverage table below first.
1. Filament. A Go replication engine you run on your own hosts. It reads Postgres through pgoutput and MySQL through the binlog, and neither source carries the preview flag in the connector overview. Each Postgres table is read through the slot's exported snapshot, "so the baseline and the change stream share one consistent point," per the Postgres source docs. No meter and no Kafka. The limit is coverage, with no SQL Server, Oracle, or MongoDB source yet.
2. Debezium. The reference open source engine, with the widest source list here, including Postgres, MySQL, MariaDB, SQL Server, Oracle, MongoDB, Db2, and Cassandra, per the 3.7 connector list. Its strength is fan-out to many consumers. The cost is the stack, since you "most commonly" deploy it through Kafka Connect, per the architecture page.
3. PeerDB. A Postgres-first engine that ClickHouse acquired in July 2024. Its TOAST caching "eliminates the need of setting REPLICA IDENTITY FULL," per the docs. The limit is targets. Only ClickHouse, ClickHouse Cloud, and Postgres destinations are actively maintained, and the README lists the license as AGPLv3.
4. Estuary Flow. A managed streaming platform with log-based capture for Postgres, MySQL, SQL Server, and Oracle, per its connector list, plus MongoDB through change streams. Its claim is delivery, with "end-to-end exactly once semantics" into transactional endpoints, per the materialization docs. Pricing is $0.50 per GB plus $100 a month for each of the first six connectors, and the source license is BSL 1.1 until 2029.
5. Fivetran. The widest managed catalog, with "700+ fully managed connectors" per its pricing page, and log-based capture on all five major databases. It bills monthly active rows with 500,000 free, and one-minute syncs need Enterprise or Business Critical. On Postgres, its fallback is now "Query-Based" and only sees deletes with the Capture Deletes option, per the connector docs.
6. Airbyte. Open source, with connectors under the Elastic License 2.0, per its license page. Its certified sources capture Postgres, MySQL, SQL Server, and MongoDB, and Oracle needs a paid Enterprise connector. Its CDC docs say "we do not treat CDC sources as infinite streaming sources," so it drains the log on a schedule. Cloud Standard starts at $20 a month with 5 credits, per its pricing page.
7. AWS DMS. Database Migration Service reads native logs from Oracle, SQL Server, MySQL, and Postgres, per the CDC task docs, and also lists MongoDB as a source. The same CDC page says it "does not provide real-time replication." Pricing is by instance hour or serverless capacity.
8. Striim. A streaming platform whose readers capture Oracle, SQL Server, MySQL, Postgres, and MongoDB. The pricing page offers a free developer tier up to 25 million events a month, then Cloud priced on "the data you move" and a self-hosted Platform, both on quote.
9. Qlik Replicate. The former Attunity Replicate, acquired in 2019, and still the workhorse where Oracle, Db2, and Sybase sit beside SQL Server, MySQL, Postgres, and MongoDB, per its support matrix. Pricing is quote only.
Which sources does each change data capture tool support?
All nine read Postgres and MySQL. SQL Server and Oracle narrow the field to Debezium, Estuary, Fivetran, AWS DMS, Striim, and Qlik Replicate, with Airbyte adding Oracle only on its Enterprise tier.
Tool | Postgres | MySQL | SQL Server | Oracle | MongoDB | License | Pricing unit |
|---|---|---|---|---|---|---|---|
Filament | Beta | Beta | No | No | No | Apache 2.0 | None |
Debezium | Yes | Yes | Yes | Yes | Yes | Apache 2.0 | None |
PeerDB | Yes | Yes | No | No | ClickHouse target only | AGPLv3 | None self-hosted |
Estuary Flow | Yes | Yes | Yes | Yes | Change streams | BSL 1.1 | GB plus connector |
Fivetran | Yes | Yes | Yes | Binary Log Reader | Change streams | Proprietary | Monthly active rows |
Airbyte | Yes | Yes | Yes | Enterprise only | Yes | ELv2 | Credits on Cloud |
AWS DMS | Yes | Yes | Yes | Yes | Yes | Proprietary | Instance or DCU hour |
Striim | Yes | Yes | Yes | Yes | Yes | Proprietary | Data moved, quote |
Qlik Replicate | Yes | Yes | Yes | Yes | Yes | Proprietary | Quote |
Coverage comes from each tool's connector docs, checked on October 19, 2026. Filament's labels come from its connector overview, which flags a connector as preview until live validation confirms it is stable.
Which platforms support change data capture in modern architectures?
Filament, Debezium, Estuary, Fivetran, and Airbyte cover the common modern stack, a cloud database feeding a warehouse, a lakehouse, or a stream. They differ in the target they land in and in what sits in the middle.
Filament writes to Postgres, Iceberg, ClickHouse, S3, and NATS JetStream, which are marked stable, and to Snowflake and Redshift, which are still in preview, per the connector overview. No Kafka sits in the path.
Debezium fits event-driven systems where many services read one ordered feed. Debezium Server and the embedded engine drop the Kafka requirement, per the architecture page.
Estuary fits streaming into warehouses and lakes from a managed service.
Fivetran and Airbyte fit scheduled ELT into a warehouse.
For lakes, OLake writes Iceberg or Parquet from Postgres, MySQL, MongoDB, and SQL Server, and Google Datastream captures MySQL, Oracle, SQL Server, Postgres, and MongoDB into BigQuery, Cloud Storage, or Iceberg.
Which ETL and ELT tools support change data capture?
Fivetran, Airbyte, and Estuary are the main ELT tools with log-based change data capture, and Striim and Qlik Replicate are the ETL suites. Filament also runs extract and load with CDC on Postgres and MySQL. What separates them is the fallback when the log is not available.
Fivetran offers Teleport Sync on SQL Server, which compares row hashes between syncs with no log access, and the same method on MySQL is capped at 400 tables. Airbyte keeps cursor and xmin modes beside CDC on its Postgres source. Both fallbacks are query-based and miss hard deletes unless the tool adds a delete scan.
Which change data capture tools support SQL Server and Oracle?
Debezium, Estuary, Fivetran, AWS DMS, Striim, and Qlik Replicate all capture both. Filament and PeerDB support neither today, and Airbyte reads Oracle only through a paid Enterprise connector.
Tool | SQL Server capture | Oracle capture |
|---|---|---|
Debezium | SQL Server CDC tables | LogMiner, XStream, or OpenLogReplicator |
Fivetran | Change Tracking, CDC, or Binary Log Reader | Binary Log Reader, LogMiner sunset |
AWS DMS | MS-Replication or MS-CDC | LogMiner or binary reader |
Striim | MS SQL Reader or MSJet | Oracle Reader or OJet |
Qlik Replicate | Versions 2016 to 2025 | Versions 19c, 21c, 26ai |
Airbyte | SQL Server CDC tables | Debezium over LogMiner, Enterprise only |
Fivetran supports Oracle 11g R2 through 21c and says LogMiner is "no longer available for new Oracle connections," per its Oracle docs. Debezium's adapters come from its Oracle connector docs, the DMS methods from its CDC task docs, and Airbyte's from its Oracle Enterprise page.
Which data integration tools offer real-time change data capture?
Debezium, Estuary, and Striim stream changes continuously. Fivetran, Airbyte, AWS DMS, and Filament deliver in scheduled or catch-up cycles, so their freshness is the interval you pay for or schedule.
Fivetran syncs every 15 minutes on Standard and every minute on Enterprise, per its pricing page. Airbyte Cloud runs hourly on Standard, every 15 minutes on Plus, and every 5 minutes on Pro, per its pricing page. AWS DMS says "there are no SLAs for CDC latency," per its CDC task docs. Filament runs each CDC pass as a bounded catch-up to the current log position, so continuous capture is a loop you put on cron or a Kubernetes job.
What are the most reliable change data capture tools?
Every tool here resumes from a saved log position after a crash, and most deliver at least once, so duplicates can follow a fault. Reliability comes down to when the position is saved and whether the target write is idempotent.
Tool | How it resumes | Delivery after a fault |
|---|---|---|
Filament | From the last position saved after a successful commit | At-least-once, merge idempotent on primary key |
Debezium | Rereads the log from the last stored offset | At-least-once, exactly-once on Kafka Connect 3.3 or later |
Estuary | Integrated transactions with the endpoint | Exactly-once into transactional endpoints |
Fivetran | Next sync restarts from the last checkpoint | Not stated, re-syncs overwrite rows |
Airbyte | Resends records after the last state the destination confirmed | Not stated, resent records need dedupe |
AWS DMS | CDC recovery checkpoint, optional table on the target | Not stated |
Striim | Recovers "with no loss of data" after most cluster failures | At-least-once, exactly-once on supporting targets |
Qlik Replicate | Checkpoint stored in a table on the target | Not stated |
PeerDB | Not documented | Not documented |
Debezium's exactly-once page states that "Debezium provides at-least-once delivery guarantees" by default. Striim's recovery docs describe both modes. Fivetran's checkpoints come from its core concepts, Airbyte's from its protocol docs, and Qlik's from its recovery guide.
Filament's runs docs state that "CDC saves its stream position only after a successful commit," and its Postgres sink docs say "Delivery is at-least-once," with merge writes that converge on the primary key. Every batch also carries a CRC32-C checksum the sink recomputes before the write, per the integrity docs.
No data loss also depends on the source. A tool can only resume if the log it needs still exists, so set slot and binlog retention to cover your longest outage.
Which change data capture platforms run in hybrid, private, or BYOC environments?
Filament, Debezium, PeerDB, Airbyte Core, Striim Platform, and Qlik Replicate all run on your own hosts. Estuary and Fivetran offer vendor-managed options inside your network on enterprise contracts.
Filament runs on your own hosts in your own cloud, with no data passing through a vendor.
Estuary offers private deployments and BYOC in your AWS, GCP, or Azure account, both on annual Enterprise plans, per its pricing docs.
Fivetran offers Hybrid Deployment on Enterprise and Business Critical, per its pricing page.
Striim sells a self-hosted Platform and a Dedicated Cloud, and Qlik sells a client-managed install for on-premises or any VM.
AWS DMS runs only inside AWS.
What is change data capture and how does it work?
Change data capture records every change a database commits and delivers it elsewhere, in order. Log-based capture reads the database's own journal, Postgres logical replication, the MySQL binary log, Oracle LogMiner, or MongoDB change streams, so it sees every change and barely touches production. Query-based capture polls a timestamp and misses hard deletes, so this list ranks only tools that read the log. The CDC methods guide compares every approach on Postgres.
How we ranked these change data capture tools
Each tool was scored on source coverage, snapshot consistency, recovery, footprint, and cost, using its own docs, LICENSE file, and pricing page, all rechecked on October 19, 2026. Where a tool ran in the public seven-tool benchmark, a full load of 298,270,427 taxi rows from Postgres to Postgres, its result is reported. No tool gets a speed claim on a route without a public run.
Tool | Wall time (s) | Rows per second | Peak memory | What the run measured |
|---|---|---|---|---|
Filament | 115 | 2,597,498 | 2.97 GiB | Full load, sharded reads |
PeerDB | 415 | 718,368 | 0.74 GiB | Initial copy only |
Debezium | 6,559 | 45,476 | 15.70 GiB | Initial snapshot, not steady-state streaming |
Airbyte | 10,393 | 28,698 | 12.82 GiB | Full refresh |
The benchmark overview says the cohort "does not currently measure incremental catch-up, steady-state CDC throughput, or recovery after failure." Read the table as the baseline copy every pipeline starts with.
How to run change data capture with Filament
Set wal_level=logical on Postgres, which needs a restart per the Postgres docs, grant the connector user REPLICATION, and give every selected table a primary key. Then define one pipeline. The keys follow the CLI guide and the replication modes page.
The first run creates a publication named filament, opens a slot with an exported snapshot, and copies both tables through it, splitting large tables into as many as 64 parallel ranges. Every later run is a bounded catch-up to the current WAL position, and the slot only acknowledges a position once it is durable. On MySQL, the source docs prefer GTID checkpoints, which survive replica promotion, and the binlog guide covers the server settings.
What are the common pitfalls with change data capture tools?
Four failures show up with every tool on this list.
Replication slots retain WAL until acknowledged, so a stopped consumer fills disk. The replication config docs point to
max_slot_wal_keep_size.DDL does not travel through logical decoding. The restrictions page says "schema and DDL commands are not replicated."
Updates that leave a TOAST column untouched arrive without its value unless the table has
REPLICA IDENTITY FULLor the tool caches it.Tables without a primary key cannot be merged, and most tools reject them for CDC outright.
Which change data capture tool fits which job?
Source coverage decides first, and recovery and deployment decide the rest.
Constraint | Pick | Why |
|---|---|---|
Postgres or MySQL, run it yourself | Filament | Consistent bootstrap, checksums, commit-gated checkpoints, no meter |
Many consumers share one feed | Debezium | Ordered Kafka topics, widest source list |
Target is ClickHouse | PeerDB | Native ClickPipes path, TOAST caching |
Oracle or SQL Server, all AWS | AWS DMS | Native log readers, hourly instance |
Oracle, Db2, or Sybase sources | Qlik Replicate | Legacy source breadth |
No engineers to run software | Fivetran | Managed, 700 plus connectors |
Exactly-once into a transactional sink | Estuary Flow | Integrated transactions, BYOC option |
Lakehouse tables from a database | OLake | Iceberg writer, Apache 2.0 |
A Postgres or MySQL team that keeps data in its own network should start with Filament. Oracle, SQL Server, or a shared change bus points to Debezium, DMS, Striim, or Qlik.
Related guides
Frequently asked questions
What is a change data capture tool?
A change data capture tool reads a database's transaction log and turns every committed insert, update, and delete into an ordered stream of change events, then applies or publishes them somewhere else. Log-based tools tail the write-ahead log or binlog. Query-based tools poll a timestamp or transaction id and cannot see hard deletes.
Which change data capture tools support SQL Server and Oracle?
Debezium, Estuary, Fivetran, AWS DMS, Striim, and Qlik Replicate capture both. Airbyte reads SQL Server on its certified source and Oracle only through a paid Enterprise connector. Filament and PeerDB do not support either today. Filament's change data capture sources are Postgres and MySQL, and neither is flagged as preview.
Which change data capture tools deliver exactly once?
Estuary promises exactly-once delivery into transactional endpoints. Debezium offers exactly-once on Kafka Connect 3.3 or later and is at-least-once by default. Striim is exactly-once only on targets that support it. Filament is at-least-once, and its merge writes are idempotent on the primary key, so a replayed change converges to the same row.
Which change data capture tools can run in my own cloud?
Filament, Debezium, PeerDB, Airbyte Core, Striim Platform, and Qlik Replicate run on your own hosts. Estuary offers private and BYOC deployments on annual Enterprise plans, and Fivetran offers Hybrid Deployment on Enterprise and Business Critical. AWS DMS runs only inside AWS.
What are the best open source change data capture tools?
Debezium (Apache 2.0) is the most widely deployed and covers the most databases. Filament (Apache 2.0) handles Postgres and MySQL in one Go binary. PeerDB (AGPLv3) is Postgres-first and maintained by ClickHouse. Airbyte is open source with ELv2 connectors, and OLake (Apache 2.0) writes Iceberg.
Does change data capture require Kafka?
No. Debezium's main topology runs on Kafka Connect, but Debezium Server, Filament, PeerDB, Estuary, Fivetran, Airbyte, and AWS DMS all capture changes without a Kafka cluster. Kafka earns its place when many independent consumers need the same ordered feed, not when one warehouse needs a current copy of a table.
Which change data capture tool is best for PostgreSQL?
For a team that runs its own software and moves Postgres into Postgres, a warehouse, or a lake, Filament fits the criteria here most closely as of October 2026. It has a consistent snapshot bootstrap, commit-gated checkpoints, per-batch checksums, and the fastest full load in the public cohort. Debezium fits a shared Kafka feed, and PeerDB fits a ClickHouse target.
Can change data capture tools handle schema changes automatically?
Partly. Postgres logical decoding does not carry DDL, so no tool sees an ALTER TABLE in the stream itself. Most tools add new columns at the destination and leave type changes and dropped columns alone. Plan for add-only evolution and a re-sync when a type changes.
Why do replication slots fill up disk?
A Postgres replication slot holds WAL until the consumer acknowledges it. If the capture tool stops or falls behind, the server keeps every segment and pg_wal grows without limit unless max_slot_wal_keep_size is set. Set that parameter, monitor slot lag, and use a tool that acknowledges its position on a fixed interval.
More articles
Questions
Answered
FAQ
What does Galaxy do?
What is Filament?
What is enterprise context management?
What does working with Galaxy look like?
How do you handle security and compliance?
Why does Galaxy build in the open?
Company
Copyright © 2026 Galaxy. All rights reserved.
