Autoscaling Controller  ·  View 13 of 37  ·  3 · Data

Target and Policy Model

The registry: what a target is, what may constrain it, and what expires.

Editable source SVG draw.io All views
policy_version policy_version_id PK target_id FK form setpoint dead_band_pct sustain_out / sustain_in immutable_at fleet fleet_id PK region capacity_ceiling spend_ceiling_month default_degraded_mode signal_definition signal_id PK target_id FK source_identity expression lead_or_lag plausible_min / max staleness_horizon safety_bound bound_id PK target_id FK kind value second_approver effective_from scaling_target target_id PK fleet_id FK provider_kind min_capacity max_capacity control_interval_s drain_deadline_s scale_to_zero_ok warm_pool pool_id PK target_id FK NULL topology size_cap_pct max_member_age shape override override_id PK target_id FK kind pinned_capacity expires_at NOT NULL actor justification desired_state target_id PK desired_capacity decided_at decision_id FK dry_run 1 : N 1 : N 1 : N 1 : N 1 : N 1 : N 1 : 1 Target, Policy and Bound — Data Model A policy version is immutable once written, so a journalled decision can always be re-read against the exact policy that produced it. v 1.0 · owner Data & AI Global Practice · date 2026-09

Decisions

  • A policy version is immutable once written, so a journalled decision can always be re-read against the exact policy that produced it.
  • safety_bound is a separate entity from the policy, carrying its own second-approver flag — bounds are not policy fields.
  • override.expires_at is NOT NULL. There is no way to express a permanent override in the schema.

Fields that carry weight

  • signal_definition.source_identity — a policy binds to a named authenticated source, so source identity is part of the signal definition.
  • signal_definition.lead_or_lag — drives the hierarchy in view 19.
  • scaling_target.scale_to_zero_ok — scale to zero is opt-in, with a declared cold-start budget.

Assumptions

  • warm_pool.target_id is nullable, which is how a shared pool is expressed without a second table.
  • control_interval_s is per target within 5-300 s; the fleet default is 15 s.