-
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 block volumes (server side): how the data path (clients broadcast writes directly to all replicas) is split from the consensus path (RAFT only for login and recovery watermarks), where it plugs into HomeBlocks, and the durability / read-LSN / reconfiguration design. Includes login, catch-up, and read-protection sequence diagrams, the settled design decisions, 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.)