The series, in order
01Why I built a database from scratch
A coding challenge, a crush on Scylla, and the moment I wanted the harder promise.
One computer isn't enough
Phone numbers, a notebook, and every wall you hit on the way to a distributed database.
Certainty in uncertainty: how randomness makes Raft reliable
How three machines agree on one story, and why the answer involves rolling dice.
Following one write through BeeDB
One set command, from the socket to the disk to the word STORED.
What happens when the leader dies
A ten-second countdown, a silence, an election, and two writes that look identical from outside.
Writing to disk without lying
Page caches, group commit, torn tails, and the fsync failure Postgres named after itself.
Mistakes that taught me the most
The day time stopped, a clock that started over, and the logging that caused the outage.
What BeeDB doesn't promise yet
Stale reads, at-least-once writes, no PreVote, and the durability claim I argue rather than prove.
Deep dive
02One page with the whole system on it: the thread map, the commit rule, the gateway’s layers, and what breaks when you pull things out. Written for people who build databases, or want to see how one is put together.
BeeDB: the architecture
The whole system for people who build these: threads, the commit rule, the gateway, and what I would do differently.