Build logs
arriqaaq
Build logs and notes for myself on distributed systems: deterministic simulation, databases, and the guts underneath.
Recent build · use ← → keysGit-style branching on an LSM key-value store
How a fork, a diff and a merge are built out of one sequence number.
11 interactive widgets · 35 diagrams
Technical field notes
-
Storage EnginesGit-style branching on an LSM key-value store →How a fork, a diff and a merge are built out of one sequence number.~8,632 words · 11 interactive widgets · 35 diagrams
-
FilesystemsBuilding a filesystem on a database →How syscalls, inodes, blocks, journals and FUSE work, and what each one becomes when the storage underneath is a database.~9,667 words · 12 interactive widgets · 9 diagrams
-
Distributed SystemsWho else is here? Cluster membership from first principles →Heartbeats, gossip, SWIM, Serf, Lifeguard, and Rapid — how a cluster learns who is in it, and the separate problem of changing the voter set.~6,830 words · 19 interactive widgets · 15 diagrams
-
Deterministic Simulation TestingLearning DST for testing our distributed transactional KV store →Building a deterministic simulation tester.~5,093 words · 22 interactive widgets · 4 diagrams
About
Software engineer and problem solver. I've built products at startups (SurrealDB, Codenotary, GreedyGame, HapPay) and large companies (VMware, Cisco), most recently leading the storage effort at SurrealDB. I like owning a problem end to end, from the customer who is stuck to the fix in production. Find me on GitHub ↗. Read my resume. Contact me by email or LinkedIn ↗.