Skip to content
Brian Szmyd edited this page Jun 30, 2026 · 4 revisions

HomeBlocks Wiki

Engineering notes for HomeBlocks — a crash-consistent block-volume store built on HomeStore.

Pages

  • 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::async coroutine ("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_await function into (frame + state-machine resume()), and how that differs from a stackful folly::fibers task. Read it if the frame/continuation/thread-hop mechanics feel like magic.

  • Coroutines vs Callbacks — why the .thenValueco_await lift 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.)

Clone this wiki locally