Autoscaling Controller  ·  View 26 of 37  ·  4 · Runtime

When the Capacity Is Not There

Stockout, quota and scarcity are one problem; throttling is a different one.

Editable source SVG draw.io All views
Request Provision Request preferred shape Refusal Zonal Stockout Quota Exhausted Accelerator Scarce API Throttled different problem Declared fallback Next Zone ordered list Next Shape declared only Spot then On-Demand above the floor Exhausted Unmet Demand Signal surfaced, not retried Alert capacity constrained Meanwhile Hold What Serves no scale-in Time Constrained reported per target breaker, not fallback degrade, keep serving When the Capacity Is Not There Application we own Risk / gap Security / platform Data store failure / alternate synchronous Throttling and scarcity look alike and are handled differently: throttling is retried with backoff behind a breaker, scarcity is a fallback list and then an honest signal. v 1.0 · owner Data & AI Global Practice · date 2026-09

Decisions

  • Scarcity walks a declared ordered list of zones and machine shapes, then surfaces unmet demand. It never retries indefinitely.
  • Throttling is not scarcity: it backs off with jitter behind a per-provider concurrency cap and a breaker that opens after 5 failures.
  • While constrained the controller holds what is serving and does not scale in. Time-constrained is reported per target.

Spot capacity

  • Declared targets prefer interruptible capacity above an on-demand floor the controller never falls below.
  • A spot eviction is observed as a drop in actual capacity and re-derived on the next reconcile, which is the same path as any other partial loss.

Risks

  • A fallback list that is too permissive silently changes a target's performance profile. Shapes must be declared per target, never inferred.