Module 1 · Chapter I — Foundations
The durability spectrum.
Durability is a position on a spectrum, set deliberately per queue. This module builds the spectrum as a tradeoff frontier, extracts the one knob that moves a system along it, and separates the two axes a queue is placed on. It is the foundation every later module stands on — and it is taught by moving the picture, not by reading a machine’s numbers.
What this module is
graft.design.mdThe reason a single number teaches little is that it is one machine’s answer to one question. What transfers is the shape above and the knob behind it: throughput tracks how many durable records ride each fsync, so the whole spectrum is one tradeoff, moved by one lever. Memory rides infinitely many records per fsync and loses everything; Oban rides one and loses nothing; Champ rides K, and sliding K walks the Champ point along the frontier in real time.
That reframing is the module’s spine. The far corner the figure marks — strict durability and high throughput — is unreachable for a single engine, which is why Echo Persistence splits the job into two tiers; the goal marker is where the course is headed, measured per-workload when the engines are benchmarked together.
On the numbers. Where a figure appears in this course, it is an indicative single-core sandbox measurement against MinIO, shown to make a relationship concrete — never as a portable benchmark. Read the slope, not the digit.
The three dives
module 1Inherited Valkey durability
What AOF’s once-a-second flush actually promises — and an interactive timeline where you trigger a crash and watch the lost window appear.
Dive 1.2The shootout and the one knob
The mechanism, with a slider for records-per-fsync: raise K and watch throughput climb — the four engines fall out as positions, not a table.
Dive 1.3Two axes, one decision
Loss window and replication are independent. Drop a workload into the durability–replication plane and see which corner it needs.
Build & check
A one-page placement worksheet: take three queues — a telemetry firehose, an ordinary work queue, and a payments queue — and place each on both axes (loss window and replication), justifying every placement with a sentence. You will reuse it in Dive 1.3’s plane.
Using the frontier figure and Dive 1.2’s slider — not the table — state the one knob in a sentence, and predict, before you move the slider, which direction Champ’s point travels as K grows. Then confirm it.
References & sources
- Echo records
- graft.design.mdthe spectrum and the two-tier design
- graft.roadmap.mdthe per-workload shootout (eg.6), the goal corner
- External
- Valkey persistence (AOF)the inherited window
- oban-bg/obanthe strict per-commit anchor
- Designing Data-Intensive Applications, Kleppmann 2017WAL, group commit (Ch. 3, 5)