Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,3 @@
# walshadow

> [!WARNING]
> **Experimental**
>
> **Project status: Development Preview**
>
> walshadow is under active development and being hardened through real-world
> testing and feedback. We recommend validating it thoroughly with your
> workloads. Interfaces and behavior may evolve

walshadow replicates PostgreSQL rows into ClickHouse from physical WAL,
including initial load, continuous changes, schema evolution, restarts, and
planned source switchover
Expand Down
6 changes: 4 additions & 2 deletions docs/failover.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ move DNS
- required WAL remains available
- when using slots, target already has physical slot covering resume position

Physical slots are not synchronized to standbys. Create target slot before
switchover with storage and WAL coverage appropriate for deployment
Physical slots are not necessary when using object storage, since archive
covers WAL retention. Physical slots are not synchronized to standbys. Create
target slot before switchover with storage and WAL coverage appropriate for
deployment

## Procedure

Expand Down
10 changes: 6 additions & 4 deletions docs/operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,9 @@ position. Reserve them for recovery drills or operator-directed rebuilds

## Retain source WAL

Configure a physical replication slot for routine deployments:
Configure a physical replication slot when not using object storage. With
object storage, archive already covers WAL retention and slots are not
necessary:

```sql
SELECT pg_create_physical_replication_slot('walshadow');
Expand All @@ -143,9 +145,9 @@ immediately. `init` reports SQL above so slot can exist before daemon starts
Live source moves never create target slot because a new slot cannot protect
earlier resume position. Pre-create target slot before planned switchover

Without slot, ensure `wal_keep_size` or continuous archive covers worst-case
outage and backlog. Missing source WAL stops replication rather than skipping
data
Without slot, ensure object-storage archive or `wal_keep_size` covers
worst-case outage and backlog. Missing source WAL stops replication rather
than skipping data

## ClickHouse interruptions

Expand Down
Loading