Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Appendix: Task-to-Chapter Map

The course is generated from a single verified build plan. Every build chapter maps to exactly one phase of that plan, and every phase's code lives, in full, in the Answer Key. This page is the index between the three.

The invariants

Four rules hold across the whole course. If you ever find one broken, it is a bug in the course, not in your understanding:

  1. Every build chapter maps to exactly one phase of the reference build (panoptes_control), and that phase is green (its tests pass) before the chapter ships.
  2. No build chapter uses machinery no earlier chapter demonstrated. Each new crate or API gets a concept chapter first. If a build needs something with no lead-in, that is a missing concept chapter.
  3. Specs are givens; implementations are the exercise. A build chapter hands you the design decisions you cannot derive (field lists, wire formats, SQL, constants) and the test names — never the function bodies. The bodies are in the Answer Key, to check against, not to copy from before you try.
  4. Every runnable example and every Tracing quiz is compiled before publish. Claimed output is captured from a real run.

The map

Phase (reference build)Course PartBuild chapterAnswer-key anchors
Phase 0 · control-core (ids, domain)II — CoreBuild: Ids and the Domain#core-ids, #core-domain
Phase 0 · control-core (error, worker, proto)II — CoreBuild: ControlError, the Seam, the Wire#core-error, #core-worker, #core-proto
Phase 1 · control-eval (client, eval)III — EvalBuild: ModelClient + run_eval#eval-client, #eval-run-eval
Phase 1 · control-eval (contract)III — EvalBuild: The Manifest and the Record Log#eval-contract
Phase 2 · control-store (schema, CRUD)IV — PersistenceBuild: The Store#store-schema, #store-crud
Phase 2 · control-store (claim, record)IV — PersistenceBuild: claim_next_run + Recording#store-claim, #store-record, #store-idempotent
Phase 3 · panoptes-control APIV — ServiceBuild: The Coordinator API#service-router, #service-create-run, #service-get
Phase 4 · scheduler + LocalWorkerVI — SchedulerBuild: LocalWorker + the Scheduler#scheduler-plan, #scheduler-retry, #scheduler-process, #worker-local
Phase 4 · run loop + binaryVI — SchedulerBuild: The Run Loop and the Binary#scheduler-runloop, #control-main
Phase 5 · telemetry + /statsVII — TelemetryBuild: Run Spans and /stats#telemetry-init, #telemetry-stats, #store-usage
Phase 6 · codecVIII — ClusterBuild: The MessageStream Codec#codec
Phase 6 · RemoteWorker + worker binVIII — ClusterBuild: RemoteWorker and the Worker Binary#remote-worker, #connection-actor, #serve-workers, #worker-bin
Phase 6 · redelivery + capstoneVIII — ClusterBuild: Redelivery and Heartbeat Reaping#distributed-capstone

Concept chapters and the seams they unlock

Every concept chapter exists to make a later build derivable. The through-line: one seam per arc.

  • The seam itself (Part I) — dyn WorkerHandle. Unlocks everything: the scheduler dispatches to it without knowing local from remote.
  • The error taxonomy (Part II) — is_retryable(). Unlocks retry (Part VI) and redelivery (Part VIII).
  • The client seam (Part III) — dyn ModelClient. Unlocks mock-tested evals with no live network.
  • The atomic claim (Part IV) — UPDATE … RETURNING. Unlocks safe concurrent scheduling.
  • Bounded concurrency + graceful shutdown (Part VI) — buffer_unordered, watch + select!. Unlocks the dispatch engine.
  • Framing + the connection actor (Part VIII) — LengthDelimitedCodec, one actor per socket. Unlocks the networked worker, and the whole payoff falls out: kill a worker mid-run, lose no eval, double-count none.