Spot Capacity Orchestrator  ·  View 07 of 32  ·  3 · Structure

Layered Architecture

Seven layers with dependencies pointing one way, and the one dependency that is deliberately missing: the node plane never needs the control plane.

Editable source SVG draw.io All views
Workloads Spark pipelines decommission-aware Training jobs PyTorch DCP CI and services requeue · stateless Node plane Checkpoint client Go · Python · JVM Node agent systemd · acts alone Cached contract signed · on disk Control plane Demand intake normalised units Portfolio planner caps · groups Fallback arbiter spend authority Acquirer token budget Schedulers Kubernetes Kyverno admission Slurm job_submit filter Contract and policy Contract repository Forgejo Contract compiler CUE · feasibility Contract distributor signed bundles Provider Nova and Ironic OpenStack Notice relay NATS per hall Reservations Blazar · committed State and record Fleet state PostgreSQL · Patroni Lifecycle events Kafka Ledger and history ClickHouse Checkpoints Ceph RGW · per workload refresh 60 s pending work contract exists? launch · delete Layered Architecture — The Node Plane Skips the Control Plane External / third party Application we own Security / platform Data store Interface / broker Queue / topic synchronous batch Nothing in the node plane depends on the control plane: the agent reads a bundle the contract layer signed, so a control-plane outage costs convergence, not drain. v 1.0 · owner Compute Platform Architecture · date 2026-09

Decisions

  • The node plane depends on the contract layer's signed bundle and on the scheduler API, and skips the control plane entirely. That skipped layer is the critical design decision drawn as a picture.
  • The control plane sits above the schedulers because it reads their pending work; it never places a unit itself.
  • Admission lives in the schedulers (Kyverno for Kubernetes, a job_submit filter for Slurm) and depends only on the contract layer, so placement without a contract is refused even when the control plane is down.

Built, adopted, integrated

  • Built in Go: node agent, checkpoint client libraries, controllers, contract compiler and distributor. Adopted: OpenStack, Kubernetes, Slurm, Kyverno, PostgreSQL with Patroni, Kafka, ClickHouse, Ceph, Vector, OpenBao, SPIRE. Nothing proprietary.

Omitted

  • Identity, metrics and the audit log service cut across every layer and are drawn on views 25, 27 and 30.