build log · 5 entries · building — D4 ship gate: sustained load red, root-causing
Durable Workflow Runner: the build log
A background-task runner where accepting a job is a durable commit — acknowledged work survives process death, and history is bounded by design. Rust, a file journal, one writer. Built in the open.
| Milestone | Name | Entries | State |
|---|---|---|---|
D0 |
model | 1 | done |
D1 |
journal | 0 | done |
D2 |
execute | 0 | done |
D3 |
maintain | 1 | done |
D4 |
ship | 3 | ● in progress |
Latest · D4 · 0.5: Load battery: red gate
D0 · model
The state machine: transitions, invalid states, identities, limits — deterministic tests under a fake clock.
0.1 |
Contract + scaffoldGuide 04 read end to end: a file journal is the authority, one writer, at-least-once attempts — the workspace, docs and crate skeletons are laid out. |
0 |
D1 · journal
Framed append-only records, checksums, exclusive writer, generations — the four crash cases proven.
D2 · execute
Allowlisted HTTP handlers, checkpoints, delayed work, bounded retries, cancellation, effect reconciliation.
D3 · maintain
Compaction into generations, seven-day terminal expiry, backup and restore, bounded diagnostics.
0.2 |
The journal survives kill -9D0–D3 implemented and drill-proven: the framed journal, the single writer, replayed recovery, compaction into a new generation, and a backup-restored second server. Plus the bug the drill caught that tests did not. |
D4 · ship ● in progress
CLI and inspection UI, a pilot workflow, the load plan — and a second developer restores a real directory.
0.3 |
The UI catches a journal bugGET /jobs + a SvelteKit inspector — and the journaled-refusal bug the first smoke test surfaced. |
||
0.4 |
Test pass + orphan fixA full outside-guide test pass: workspace tests, pilot kill-9 → restore, dedup and refusal drills — plus the restart-orphan bug the drills caught and the fix that reconciles it. |
||
0.5 |
Load battery: red gateReplay, a submit rate ladder and the 1M-submit sustained run — committed with machine and commit. The sustained gate is red twice over, solo included: the journal's per-record fsync is the ceiling, and admission refuses rather than loses. |
||
load |
● The sustained-load gate — red twice, solo included; the fsync ceiling is being root-caused — being built now | ||
restore |
A second developer restores a real journal directory, unaided · planned | ||