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

Two Planes

The control plane decides where capacity comes from; the node plane decides what happens when it goes away. No arrow runs from a notice into a central service.

Editable source SVG draw.io All views
Split on the interruption boundary Control plane · per region · guaranteed capacity Portfolio planner seconds to minutes Fallback arbiter spend authority Acquirer and replacer token budget Contract distributor signed bundles Node plane · every reclaimable instance Cached contract drain · checkpoint · restart Node agent ≤ 2 s to drain signal Workload ≥ 115 s to finish Nova and Ironic private cloud Notice relay NATS · per hall bundle ahead of time drain signal hard notice replacement Two Planes — Where Capacity Comes From, What Happens When It Goes Application we own Interface / broker Security / platform External / third party batch synchronous event / async No arrow runs from a notice into the control plane. Replacement is requested from the lifecycle event, after the node has already acted (view 18). v 1.0 · owner Compute Platform Architecture · date 2026-09

The critical decision

  • Centralising the interruption response is tempting because every choice in it is better made with global knowledge. It also puts a round trip to a control plane inside a 120-second window, for thousands of nodes at once, during the event most likely to be degrading that control plane. It works in the steady state and fails exactly when it is needed.
  • So the planes split on the interruption boundary. Placement, scoring, acquisition and fallback are global and deliberative; their loss costs convergence. Cordon, drain, checkpoint trigger and lease release are local and immediate; they run from state the node already holds.

Budgets

  • Notice to drain signal ≤ 2 s at p99, leaving ≥ 115 s to the workload. Relay delivery ≤ 1 s; decision from the local bundle in milliseconds; scheduler API call capped at 800 ms before the local path takes over.
  • Node-local handling ≥ 99.99%, and it works with the control plane unavailable for 12 hours or more.

What the node does not decide

  • Replacement, fallback, pool choice or spend. A node that has lost its control plane drains exactly as it always does, and does nothing else.