By many measures it’s safe to say that TigerBeetle is the most interesting database in the world. Like Costanza in Seinfeld, they seem to do the opposite of everyone else:
Most teams write code fast. TigerBeetle tries to write code slow .
. Most teams treat testing as a necessary evil. TigerBeetle is built entirely on Deterministic Simulation Testing (DST) .
. Most teams build their software on top of loads of other software. TigerBeetle has zero dependencies.
There’s even more. TigerBeetle enforces static memory allocation. They keep assertions enabled in production. They chose Viewstamped Replication over Raft, and even Zig instead of Rust!
This read is going to go behind the scenes of how TigerBeetle came to be, the incredibly novel software they’ve built, and all of the wacky, wonderful things that make them so special. Based on extensive interviews with the TigerBeetle team, we’re going to cover a few topics in technical detail:
Why transactional databases should think in debits and credits, not SQL
An (actually) modern database: distributed by default, handling storage faults, and why TigerBeetle uses Zig
VOPR, TigerBeetle’s Deterministic Simulation Testing cluster
TigerStyle, and why you should use assertions
... continue reading