Autoscaling Controller · View 13 of 37 · 3 · Data
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.