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 SQLAn (actually) modern database: distributed by default, handling storage faults, and why TigerBeetle uses ZigVOPR, TigerBeetle’s Deterministic Simulation Testing clusterTigerStyle, and why you should use assertionsClick on any section to jump straight there, if you’re curious. Why we need a database that thinks in debits and creditsTigerBeetle’s website calls it “The Financial Transactions Database.” Its primitives are debits and credits, which are things you may be familiar with from your accounting requirement in college. And if you’re not a bank, you’re probably thinking this whole thing isn’t really for you. But Joran (TigerBeetle’s creator) would tell you otherwise: financial transactions, i.e. debits and credits, are actually exactly what transactional SQL was originally designed for. Way back in 1985, Jim Gray (who would later win a Turing Award) wrote a seminal paper on transactions, titled A Measure of Transaction Processing Power. If you’ve heard of it before, it’s beca...
First seen: 2025-10-01 12:42
Last seen: 2025-10-01 16:43