logoalt Hacker News

russellthehippoyesterday at 10:40 PM0 repliesview on HN

Yeah I mostly agree, and another comment brought up this idea kind of. If you can keep SQLite local, that’s usually the better answer. Local reads are insanely hard to beat, and Litestream is the canonical “keep SQLite local and ship durability elsewhere” model.

That’s actually a big part of why I started another project, haqlite: https://github.com/russellromney/haqlite which is much more on the “keep SQLite local” side: leader election via S3 conditional PUTs, WAL replication to S3, follower catchup, write forwarding to the leader, and graceful leader handoff. So it can get pretty close to zero-downtime deploys with 2+ nodes.

But not true zero downtime on a single server — if there isn’t already another warm follower alive, there is nowhere for leadership to go. So in my head:

- Litestream: local SQLite is primary; object storage is for durability / replication / failover

- haqlite: kind of a Litestream but with a focus on embedding it into any application.

- turbolite: object storage is the actual backing store, and the question is how plausible cold reads can get. No HA ideas