Introduction
PeerDB is a change data capture tool built for Postgres. It replicates from Postgres, mainly into ClickHouse, and it is now owned by ClickHouse with a hosted version inside ClickHouse Cloud. Filament is an open-source replication engine that replicates from Postgres and MySQL into Postgres, MySQL, ClickHouse, Iceberg, and S3, and is not tied to one destination.
HIGHLIGHTS
3.6× faster
WALL TIME
Filament
114.8 SEC
PeerDB
415.2 SEC
NYC Taxi, Postgres → Postgres
3.6× faster
WALL TIME
Filament
114.8 SEC
PeerDB
415.2 SEC
NYC Taxi, Postgres → Postgres
4.8× faster
WALL TIME
Filament
3.79 SEC
PeerDB
18.18 SEC
TPC-H, Postgres -> Postgres
4.8× faster
WALL TIME
Filament
3.79 SEC
PeerDB
18.18 SEC
TPC-H, Postgres -> Postgres
8.7× LESS
CPU SECONDS
Filament
377.4 SEC
PeerDB
3,270.0 SEC
NYC Taxi, Postgres -> Postgres
8.7× LESS
CPU SECONDS
Filament
377.4 SEC
PeerDB
3,270.0 SEC
NYC Taxi, Postgres -> Postgres
8.1× LESS
CPU SECONDS
Filament
17.9 SEC
PeerDB
145.3 SEC
TPC-H, Postgres -> Postgres
8.1× LESS
CPU SECONDS
Filament
17.9 SEC
PeerDB
145.3 SEC
TPC-H, Postgres -> Postgres

License and control
License
Apache 2.0, open source.
AGPL 3.0 since January 2026. Elastic License 2.0 before that. Copyleft applies to network use.
License
Apache 2.0, open source.
AGPL 3.0 since January 2026. Elastic License 2.0 before that. Copyleft applies to network use.
Self-hosted in full
Yes. One repository, no paid tier, nothing gated.
Yes. The hosted product is ClickPipes in ClickHouse Cloud. PeerDB Cloud now redirects to GitHub.
Self-hosted in full
Yes. One repository, no paid tier, nothing gated.
Yes. The hosted product is ClickPipes in ClickHouse Cloud. PeerDB Cloud now redirects to GitHub.
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.
Go and TypeScript changes inside the monorepo. No plugin or SDK. Docs say to email the team.
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.
Go and TypeScript changes inside the monorepo. No plugin or SDK. Docs say to email the team.
Connector maintenance
Every connector lives in the engine repository with a published maturity level (alpha, beta, stable).
5 sources maintained. 2 destinations maintained (ClickHouse, Postgres). Snowflake, BigQuery, S3, Kafka, Pub/Sub, Event Hubs, Elasticsearch deprecated July 2026.
Connector maintenance
Every connector lives in the engine repository with a published maturity level (alpha, beta, stable).
5 sources maintained. 2 destinations maintained (ClickHouse, Postgres). Snowflake, BigQuery, S3, Kafka, Pub/Sub, Event Hubs, Elasticsearch deprecated July 2026.
Services to operate
Server and control plane, with Postgres and NATS. Each run is its own Kubernetes Job. One binary for evaluation.
10 containers in the compose stack. Catalog Postgres, Temporal, Temporal admin tools, Temporal UI, flow API, flow worker, snapshot worker, server, UI, MinIO.
Services to operate
Server and control plane, with Postgres and NATS. Each run is its own Kubernetes Job. One binary for evaluation.
10 containers in the compose stack. Catalog Postgres, Temporal, Temporal admin tools, Temporal UI, flow API, flow worker, snapshot worker, server, UI, MinIO.
Runtime
Static Go binaries on distroless images. One runner code path wherever a run executes.
Go workers, a Rust SQL layer, a Next.js UI, Temporal for orchestration. Helm defaults ask 2 to 4 CPU and 8 GiB per flow worker.
Runtime
Static Go binaries on distroless images. One runner code path wherever a run executes.
Go workers, a Rust SQL layer, a Next.js UI, Temporal for orchestration. Helm defaults ask 2 to 4 CPU and 8 GiB per flow worker.
Scheduling
Built-in cron per pipeline. Safe to run multiple control planes.
No cron. Continuous mirrors flush on a sync interval or batch size. One-off loads by flag.
Scheduling
Built-in cron per pipeline. Safe to run multiple control planes.
No cron. Continuous mirrors flush on a sync interval or batch size. One-off loads by flag.
SaaS source execution
Manifests interpreted inside the engine, in the same process as the run. No per-connector containers.
None. Databases only.
SaaS source execution
Manifests interpreted inside the engine, in the same process as the run. No per-connector containers.
None. Databases only.
Embeddable
Yes. Go library (app.Run) with swappable event bus, state store, and secrets.
No.
Embeddable
Yes. Go library (app.Run) with swappable event bus, state store, and secrets.
No.
Interfaces
Web UI, ConnectRPC API, CLI.
Web UI, a Postgres-wire SQL layer for CREATE MIRROR, gRPC and HTTP API.
Interfaces
Web UI, ConnectRPC API, CLI.
Web UI, a Postgres-wire SQL layer for CREATE MIRROR, gRPC and HTTP API.
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.
Per-partition state during the initial load. If the snapshot worker restarts, the initial load fails and needs a resync. CDC resumes from the slot.
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.
Per-partition state during the initial load. If the snapshot worker restarts, the initial load fails and needs a resync. CDC resumes from the slot.
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. A row-count API exists for Postgres-to-Postgres mirrors only, approximate above 10 GB. No checksum.
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. A row-count API exists for Postgres-to-Postgres mirrors only, approximate above 10 GB. No checksum.
Change data capture
Native. Postgres logical replication (pgoutput) with a consistent snapshot bootstrap. MySQL binlog with GTID cursors.
Its core. Postgres pgoutput, MySQL binlog, MongoDB change streams, CockroachDB changefeeds, with built-in slot heartbeats.
Change data capture
Native. Postgres logical replication (pgoutput) with a consistent snapshot bootstrap. MySQL binlog with GTID cursors.
Its core. Postgres pgoutput, MySQL binlog, MongoDB change streams, CockroachDB changefeeds, with built-in slot heartbeats.
Schema drift
New columns added to the destination automatically. Add-only, nothing dropped, nothing rewritten.
Added columns propagate. Drops, renames, and type changes do not, and a type change can fail the sync. New tables need an edit, bigger changes a resync.
Schema drift
New columns added to the destination automatically. Add-only, nothing dropped, nothing rewritten.
Added columns propagate. Drops, renames, and type changes do not, and a type change can fail the sync. New tables need an edit, bigger changes a resync.
Parallel reads within a table
Yes. Large tables split into up to 64 shards (keyset, bitmap, or ctid) read concurrently.
Yes. ctid partitions across snapshot_max_parallel_workers, 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. ctid partitions across snapshot_max_parallel_workers, which defaults to 1.
Destinations
Postgres, MySQL, ClickHouse, Iceberg, S3.
ClickHouse and Postgres maintained. No Iceberg.
Destinations
Postgres, MySQL, ClickHouse, Iceberg, S3.
ClickHouse and Postgres maintained. No Iceberg.
Cost
What drives billing
Nothing. Compute you already run.
Nothing for the software. ClickPipes bills $0.10 to $0.20 per compute hour per service, plus $0.10 per GB for initial loads and $0.20 per GB for CDC.
What drives billing
Nothing. Compute you already run.
Nothing for the software. ClickPipes bills $0.10 to $0.20 per compute hour per service, plus $0.10 per GB for initial loads and $0.20 per GB for CDC.
Paid tiers
None.
ClickPipes in ClickHouse Cloud. Destinations are ClickHouse Cloud and, in beta since June 2026, ClickHouse's managed Postgres.
Paid tiers
None.
ClickPipes in ClickHouse Cloud. Destinations are ClickHouse Cloud and, in beta since June 2026, ClickHouse's managed Postgres.
Comparison
Benchmarks
Benchmarks
benchmark
Wall time
Wall time
Wall time
Filament
PeerDB
298M rows · PG → PG
114.8 s
415.2 s
8.7M rows in 8 tables · PG → PG
3.79 s
18.18 s
Rows per second
Rows per second
Rows per second
Filament
Filament
PeerDB
PeerDB
Better
NYC Taxi, PG → PG
NYC Taxi, PG → PG
2,597,498
2,597,498
2,597,498
718,368
718,368
718,368
Filament 3.62×
TPC-H, PG → PG
TPC-H, PG → PG
2,288,144
2,288,144
2,288,144
476,372
476,372
476,372
Filament 4.80×
CPU seconds
CPU seconds
CPU seconds
Filament
Filament
PeerDB
PeerDB
Better
298M rows · PG → PG
377.4
377.4
377.4
3,270.0
3,270.0
3,270.0
Filament 8.7×
8.7M rows in 8 tables · PG → PG
17.9
17.9
17.9
145.3
145.3
145.3
Filament 8.1×
Peak memory, largest container
Peak memory, largest container
Peak memory, largest container
Filament
PeerDB
NYC Taxi, PG → PG
2.97 GiB
0.74 GiB
TPC-H, PG → PG
1.83 GiB
0.22 GiB
Last updated on August 31, 2026
Full Filament vs. PeerDB benchmark report
Full Filament vs. PeerDB benchmark report
Full Filament vs. PeerDB benchmark report
See how Filament compares
filament benchmarks
Migrate to
Migrate to
Company
Talk to the team
Copyright © 2026 Galaxy. All rights reserved.