Introduction
Debezium is a change data capture tool. It reads database transaction logs and streams every change as an event, usually into Kafka. It is widely used and widely embedded, and it leaves the initial load, the destination tables, and the surrounding infrastructure to you. Filament is an open-source replication engine that handles the initial load and the ongoing changes in one engine, writes typed tables at the destination, and needs no Kafka to do it.
HIGHLIGHTS
59.8× FASTER
ROWS PER SECOND
Filament
2,288,144 ROWS
Debezium
38,283 ROWS
TPC-H, Postgres -> Postgres
59.8× FASTER
ROWS PER SECOND
Filament
2,288,144 ROWS
Debezium
38,283 ROWS
TPC-H, Postgres -> Postgres
57.1× FASTER
WALL TIME
Filament
114.8 S
Debezium
6,558.9 S
NYC Taxi, Postgres -> Postgres
57.1× FASTER
WALL TIME
Filament
114.8 S
Debezium
6,558.9 S
NYC Taxi, Postgres -> Postgres
30.9× less
CPU SECONDS
Filament
377.4 SEC
Debezium
11,658.4 SEC
NYC Taxi, Postgres -> Postgres
30.9× less
CPU SECONDS
Filament
377.4 SEC
Debezium
11,658.4 SEC
NYC Taxi, Postgres -> Postgres
5.3× less
PEAK MEMORY
Filament
2.97 GIB
Debezium
15.7 GIB
NYC Taxi, Postgres -> Postgres
5.3× less
PEAK MEMORY
Filament
2.97 GIB
Debezium
15.7 GIB
NYC Taxi, Postgres -> Postgres

License and control
License
Apache 2.0, open source.
Apache 2.0, open source. Commonhaus Foundation, core team at IBM.
License
Apache 2.0, open source.
Apache 2.0, open source. Commonhaus Foundation, core team at IBM.
Self-hosted in full
Yes. One repository, no paid tier, nothing gated.
Yes. No hosted offering from the project. Red Hat sells a supported build.
Self-hosted in full
Yes. One repository, no paid tier, nothing gated.
Yes. No hosted offering from the project. Red Hat sells a supported build.
Adding a new source
A YAML manifest for REST APIs, loaded at runtime with no rebuild. A Go driver for databases and other driver-based sources.
Java. A new connector is a Kafka Connect SourceConnector built on debezium-core. No public connector SPI yet.
Adding a new source
A YAML manifest for REST APIs, loaded at runtime with no rebuild. A Go driver for databases and other driver-based sources.
Java. A new connector is a Kafka Connect SourceConnector built on debezium-core. No public connector SPI yet.
Connector maintenance
Every connector lives in the engine repository with a published maturity level (alpha, beta, stable).
6 source connectors in the core repository. 9 more in separate repositories, several marked incubating. 2 sinks.
Connector maintenance
Every connector lives in the engine repository with a published maturity level (alpha, beta, stable).
6 source connectors in the core repository. 9 more in separate repositories, several marked incubating. 2 sinks.
Services to operate
Server and control plane, with Postgres and NATS. Each run is its own Kubernetes Job. One binary for evaluation.
Kafka Connect mode needs a Kafka cluster, KRaft controllers, and a Connect worker cluster, typically 5 to 9 JVM processes, plus a schema registry for Avro. Debezium Server is one JVM per connector with an external offset store.
Services to operate
Server and control plane, with Postgres and NATS. Each run is its own Kubernetes Job. One binary for evaluation.
Kafka Connect mode needs a Kafka cluster, KRaft controllers, and a Connect worker cluster, typically 5 to 9 JVM processes, plus a schema registry for Avro. Debezium Server is one JVM per connector with an external offset store.
Runtime
Static Go binaries on distroless images. One runner code path wherever a run executes.
JVM. Java 17 or later for connectors, 21 or later for Debezium Server. Default 256 MB heap sized for under 10,000 columns.
Runtime
Static Go binaries on distroless images. One runner code path wherever a run executes.
JVM. Java 17 or later for connectors, 21 or later for Debezium Server. Default 256 MB heap sized for under 10,000 columns.
Scheduling
Built-in cron per pipeline. Safe to run multiple control planes.
None. Continuous streaming only. Ad hoc snapshots are triggered by signals.
Scheduling
Built-in cron per pipeline. Safe to run multiple control planes.
None. Continuous streaming only. Ad hoc snapshots are triggered by signals.
SaaS source execution
Manifests interpreted inside the engine, in the same process as the run. No per-connector containers.
None. Database transaction logs only.
SaaS source execution
Manifests interpreted inside the engine, in the same process as the run. No per-connector containers.
None. Database transaction logs only.
Embeddable
Yes. Go library (app.Run) with swappable event bus, state store, and secrets.
Yes. Debezium Engine embeds in a Java application. Documented as less fault tolerant than the full Kafka deployment.
Embeddable
Yes. Go library (app.Run) with swappable event bus, state store, and secrets.
Yes. Debezium Engine embeds in a Java application. Documented as less fault tolerant than the full Kafka deployment.
Interfaces
Web UI, ConnectRPC API, CLI.
Kafka Connect REST API, properties files, Kubernetes operator, and a dbz CLI since 3.6. The Debezium UI was archived in September 2025. Its replacement, the Management Platform, is incubating.
Interfaces
Web UI, ConnectRPC API, CLI.
Kafka Connect REST API, properties files, Kubernetes operator, and a dbz CLI since 3.6. The Debezium UI was archived in September 2025. Its replacement, the Management Platform, is incubating.
Correctness
Resume after failure
Mid-table, from per-shard checkpoints, for upsert, incremental, and CDC runs. A failed run lands in a partial state and continues on re-request.
Streaming resumes from stored offsets. An interrupted initial snapshot starts over.
Resume after failure
Mid-table, from per-shard checkpoints, for upsert, incremental, and CDC runs. A failed run lands in a partial state and continues on re-request.
Streaming resumes from stored offsets. An interrupted initial snapshot starts over.
Per-batch integrity check
CRC32-C computed independently on the read side and the write side of every batch. A mismatch fails the run.
None. At-least-once delivery. Exactly-once only in Kafka Connect distributed mode, with open correctness caveats in the docs.
Per-batch integrity check
CRC32-C computed independently on the read side and the write side of every batch. A mismatch fails the run.
None. At-least-once delivery. Exactly-once only in Kafka Connect distributed mode, with open correctness caveats in the docs.
Change data capture
Native. Postgres logical replication (pgoutput) with a consistent snapshot bootstrap. MySQL binlog with GTID cursors.
Its core. Log-based capture for 15 databases including Postgres, MySQL, Oracle, SQL Server, MongoDB, Db2.
Change data capture
Native. Postgres logical replication (pgoutput) with a consistent snapshot bootstrap. MySQL binlog with GTID cursors.
Its core. Log-based capture for 15 databases including Postgres, MySQL, Oracle, SQL Server, MongoDB, Db2.
Schema drift
New columns added to the destination automatically. Add-only, nothing dropped, nothing rewritten.
Source DDL tracked in a schema history topic for MySQL, Oracle, SQL Server, and Db2. Postgres logical decoding emits no DDL. JDBC sink adds new columns in basic mode and is prohibited from type changes, drops, or key changes.
Schema drift
New columns added to the destination automatically. Add-only, nothing dropped, nothing rewritten.
Source DDL tracked in a schema history topic for MySQL, Oracle, SQL Server, and Db2. Postgres logical decoding emits no DDL. JDBC sink adds new columns in basic mode and is prohibited from type changes, drops, or key changes.
Parallel reads within a table
Yes. Large tables split into up to 64 shards (keyset, bitmap, or ctid) read concurrently.
Yes since 3.5 (March 2026). Chunked snapshots across snapshot.max.threads, which defaults to 1.
Parallel reads within a table
Yes. Large tables split into up to 64 shards (keyset, bitmap, or ctid) read concurrently.
Yes since 3.5 (March 2026). Chunked snapshots across snapshot.max.threads, which defaults to 1.
Typed destination tables
Yes. Native column types, primary keys, and NOT NULL derived from the source schema.
Only through a sink. Every row is a change-event envelope until a JDBC or Iceberg sink unpacks it.
Typed destination tables
Yes. Native column types, primary keys, and NOT NULL derived from the source schema.
Only through a sink. Every row is a change-event envelope until a JDBC or Iceberg sink unpacks it.
Cost
What drives billing
Nothing. Compute you already run.
Nothing for the software. The Kafka cluster, Connect workers, and JVM heaps you run to keep it durable.
What drives billing
Nothing. Compute you already run.
Nothing for the software. The Kafka cluster, Connect workers, and JVM heaps you run to keep it durable.
Paid tiers
None.
None. Red Hat subscription for supported builds.
Paid tiers
None.
None. Red Hat subscription for supported builds.
Comparison
Benchmarks
Benchmarks
benchmark
Wall time, seconds for a full load
Wall time, seconds for a full load
Wall time, seconds for a full load
Filament
Debezium
NYC Taxi, PG → PG (298.3M rows)
114.8 s
6,558.9 s
TPC-H, PG → PG (8.7M rows)
3.79 s
226.2 s
Rows per second
Rows per second
Rows per second
Filament
Filament
Debezium
Debezium
Better
NYC Taxi, PG → PG
NYC Taxi, PG → PG
2,597,498
2,597,498
2,597,498
45,476
45,476
45,476
Filament 57.1×
TPC-H, PG → PG
TPC-H, PG → PG
2,288,144
2,288,144
2,288,144
38,283
38,283
38,283
Filament 59.8×
CPU seconds, summed across the mover's containers
CPU seconds, summed across the mover's containers
CPU seconds, summed across the mover's containers
Filament
Filament
Debezium
Debezium
Better
NYC Taxi, PG → PG
377.4
377.4
377.4
11,658.4
11,658.4
11,658.4
Filament 30.9×
TPC-H, PG → PG
17.9
17.9
17.9
454.7
454.7
454.7
Filament 25.4×
Peak memory, largest container
Peak memory, largest container
Peak memory, largest container
Filament
Debezium
NYC Taxi, PG → PG (298.3M rows)
2.97 GiB
15.70 GiB
TPC-H, PG → PG (8.7M rows)
1.83 GiB
8.64 GiB
Last updated on August 31, 2026
Full Filament vs. Debezium benchmark report
Full Filament vs. Debezium benchmark report
Full Filament vs. Debezium benchmark report
See how Filament compares
filament benchmarks
Migrate to
Migrate to
Company
Talk to the team
Copyright © 2026 Galaxy. All rights reserved.