Skip to content

WalShadow

Sub-second Postgres to ClickHouse replication, straight from the WAL

Replicate Postgres directly from physical WAL into ClickHouse-native blocks, making transactions available for analytics within a second. No logical replication slots, zero operational overhead, no load on Postgres!

View on GitHub
Postgres

Try WalShadow in Private Preview
on ClickHouse Cloud

Sub-second replication

Transactions committed in Postgres became queryable in ClickHouse within a fraction of a second, typically in the low hundreds of milliseconds, enabling fast real-time analytics.

No operational overhead

WalShadow replicates directly from physical WAL without needing logical decoding. Don't worry of slot growth, load on Postgres, lack of schema changes and more.

Beyond logical replication

As WalShadow directly uses physical WAL, it supports advanced features that weren’t previously possible with logical replication. This includes complex schema changes such as ADD COLUMN DEFAULT, RENAME COLUMN, DROP COLUMN, and CREATE TABLE and more.

Postgres physical WAL to ClickHouse native blocks

Now available in ClickHouse Managed Postgres

Raw Postgres bytes entering WalShadowClickHouse native blocks exiting WalShadow
  1. 1. Select your service

    Select your PostgreSQL database and ClickHouse service, then choose the tables you want to replicate.

  2. 2. Stay in sync

    Inserts, updates, deletes, and supported schema changes flow directly from the PostgreSQL WAL into ClickHouse.

50x lower latency than ClickPipes/PeerDB, close to a raw Postgres replica

PostgresNative replica floor
50 ms
WalShadowNear replica floor
200 ms
PeerDB/ClickPipesLogical replication baseline
10 s

Open-source

WalShadow is developed in the open, giving teams visibility into how replication works and the freedom to run it in supported self-managed environments.

View on GitHub
$ git clone https://github.com/ClickHouse/walshadow$ walshadow run --source postgres --target clickhouse→ streaming WAL changes