AI Weekly Malaysia

Back to items Summaries

Twelve years of distributed SQLite

ID
39080
Status
summarized
Published
24 Oct 2026, 9:16 AM
Fetched
24 Oct 2026, 11:34 PM
Provider
Hacker News
Category
dev-community
Original URL
https://philipotoole.com/twelve-years-of-distributed-sqlite/
Source URL
https://hnrss.org/best

Summary

Score
7.5
Created
24 Oct 2026, 11:34 PM
Tags
Audience
developersdatabase_learners

What happened

Philip O'Toole recounts twelve years of rqlite, the project he open-sourced in September 2014 after taking SQLite and putting a Raft log in front of it so every write replicates across a cluster. The first version used the goraft library (the same one InfluxDB and etcd used), replaced in early 2016 with Hashicorp's Raft implementation, which rqlite still uses; the defining choice was making it a CP system where writes go through the leader, a majority must acknowledge, and a partitioned minority refuses writes. He also credits earlier work — Expensify's Paxos-based Bedrock, released 2016, and the Erlang ActorDB — and notes Canonical's dqlite, built so LXD and later MicroK8s could have an embedded replicated store without running etcd, after a call with Mark Shuttleworth about whether rqlite could fit.

Why it matters

If you reach for SQLite in a multi-node setup, this is the design trade-off laid out plainly: rqlite will refuse writes from a partitioned minority rather than accept them, so you get consistency at the cost of write availability during partitions — decide that before you pick it over an eventually-consistent store. It also maps the field you're choosing from: rqlite (Go, Hashicorp Raft), dqlite (C, its own Raft, built for LXD/MicroK8s without etcd), plus Bedrock and ActorDB, in a category O'Toole counts at roughly a dozen projects, some venture-funded and two acquired.

Discussion angle

Ask who in the room has actually run SQLite replicated across nodes, and what broke — then compare rqlite's CP stance (minority refuses writes) against dqlite's embedded-in-the-app approach for LXD/MicroK8s, and when each is the wrong tool.

Top