Skip to content

Why Walsync?

Walsync was inspired by Litestream, the excellent SQLite replication tool. While Litestream pioneered WAL-based replication, Walsync addresses key scalability challenges for multi-database deployments.

Litestream follows a one-process-per-database model. This works great for single-database applications, but creates significant overhead when you need to sync many databases:

DatabasesLitestream ProcessesMemory Overhead
11~50MB
55~250MB
1010~500MB
100100~5GB

Each Litestream process maintains its own:

  • S3 client and connection pool
  • WAL monitoring thread
  • Configuration state
  • Memory buffers

Walsync uses a single process to sync multiple databases:

DatabasesWalsync ProcessesMemory Overhead
11~30MB
51~35MB
101~40MB
1001~80MB

One process handles:

  • Shared S3 client with connection pooling
  • Efficient file watching across all databases
  • Consolidated configuration
  • Minimal per-database overhead
FeatureLitestreamWalsync
WAL replicationYesYes
Point-in-time recoveryYesYes
S3-compatible storageYesYes
Multi-database (single process)NoYes
Data integrity verificationNoYes (SHA256)
Memory efficiencyGoodExcellent
Rust implementationNo (Go)Yes
Python bindingsNoYes

Choose Walsync when:

  • You have multiple SQLite databases to sync
  • Memory efficiency matters (containers, edge deployments)
  • You need cryptographic data integrity verification
  • You want a unified configuration for many databases

Choose Litestream when:

  • You have a single database
  • You need mature, battle-tested replication
  • Point-in-time recovery granularity is critical

Walsync is built on these principles:

  1. Efficiency first - Minimal resource usage, even at scale
  2. Correctness always - SHA256 checksums verify every sync
  3. Simple operations - One binary, one process, many databases
  4. Cloud-native - Built for S3-compatible storage (AWS, Tigris, R2, MinIO)