-
Notifications
You must be signed in to change notification settings - Fork 12
Home
Engineering notes for HomeBlocks — a crash-consistent block-volume store built on HomeStore.
-
CRAFT Design — the replication protocol for single-writer block volumes (store-agnostic): how the data path (clients broadcast writes directly to all replicas) is split from the consensus path (RAFT only for login and recovery watermarks), and the durability / read-LSN / thin / reconfiguration design and why it is correct. Includes login, catch-up, and read-protection sequence diagrams and the settled design decisions.
-
CRAFT on HomeBlocks — the HomeStore-backed implementation of CRAFT: the component map, journal backing (write-once-by-reference, thin zero-writes), durability verification against the logstore, the reconfiguration mechanics (member replace / snapshot / checkpoint), and the S1–S10 work breakdown.
-
Folly to Coroutine Migration — for engineers who know the old Folly-future architecture: how the I/O path works on the new C++23
sisl::asynccoroutine ("v8") stack, focused on the two things that actually changed how you write code — the heap/allocation model and the threading/affinity model. -
Coroutines as State Machines — the mental model underneath the migration: what the compiler lowers a
co_awaitfunction into (frame + state-machineresume()), and how that differs from a stackfulfolly::fiberstask. Read it if the frame/continuation/thread-hop mechanics feel like magic. -
Coroutines vs Callbacks — why the
.thenValue→co_awaitlift is more correct, not just prettier: which bug classes coroutines delete by construction (lifetime, type, exactly-once, error propagation, RAII across the await), and which they pointedly don't (shared-state, affinity — where our real bugs live). Read it if "same thing, nicer syntax" feels too glib.
(Start here if you're picking up HomeBlocks/HomeStore after the v8 coroutine migration.)