Autoscaling Thrash from Reactive Agent Decisions
Agent-Driven Autoscaler Repeatedly Scales Up and Down in Short Cycles Because Scaling Decisions React to Instantaneous Metrics Without Accounting for Provisioning Lag
3 patterns for this goal
Capacity-planning agents make recommendations that look accurate at the aggregate level but fail operationally because they optimize against a single signal (average utilization, a reference profile’s name similarity) without checking whether that signal applies to the service’s actual architecture or load pattern. Three patterns are documented, spanning reactive scaling that oscillates instead of converging, retrieval that surfaces an operationally incompatible reference profile by name similarity alone, and infrastructure-level provisioning lag that the decision logic never models. Each failure is silent in the sense that a capacity recommendation can look reasonable until the service is deployed and real traffic exposes the mismatch β average utilization looks low until a peak period arrives, a reference profile looks similar until a service tries to scale horizontally despite being single-writer, or a scale-up decision looks sound until new instances take five minutes to come online and the spike has already passed.
The three capacity-planning patterns all share the same operational risk: an agent’s decision is grounded in a simplified model of either the service (what it actually requires) or the infrastructure (how fast it responds), and the recommendation passes review because the simplified model is not wrong on aggregate β average utilization is low, the reference profile shares naming conventions, the scaling logic is mechanically sound. Failures emerge only when real load or architecture diverges from the assumptions. The shared mitigation across all three patterns is to surface and validate the dimensional assumptions underlying a recommendation before deploying it: not just “average utilization is low” but “peak-to-average ratio is this, and this service’s SLA is that”; not just “profiles are similar” but “these structural attributes match”; not just “scaling logic is correct” but “provisioning lag is this, so scale decisions must lead demand by that window.”
When provisioning lag (time for new instances to boot and come online) is comparable to load-fluctuation timescale, reactive scaling based on instantaneous metric values produces systematic late decisions β new capacity comes online after the spike has passed, triggering immediate scale-down, then the cycle repeats. See Autoscaling Thrash from Reactive Agent Decisions.
Use structured service-architecture attributes (is the service stateless, stateful, single-writer, sharded? what’s the scaling mechanism?) to filter candidate profiles before ranking by similarity. Name and description similarity are poor predictors of whether a profile’s strategy actually applies. See Embedding Retrieval Applies Wrong Service’s Capacity Profile by Name Similarity.
No β average utilization is a misleading signal when a service has peaks that briefly exceed average by a factor of 2-5x. Capacity must be sized for the peak, not the average; a rightsizing recommendation based on average alone systematically under-provisions workloads with peaks. See Capacity Optimization for related rightsizing failures.
No β cloud instances require 2-5 minutes to boot and start application code, so decisions must be made predictively (scaling ahead of expected load) or account for a lag window where capacity is being provisioned but not yet serving. Reactive scaling that assumes instant availability produces under-provisioning during every real spike. See Hyperscaler Cold Start Lag in Auto-Scaling.
| Pattern | Mechanism |
|---|---|
| Autoscaling Thrash from Reactive Agent Decisions | Reactive scaling without lag modeling produces oscillation when provisioning lag is comparable to spike timescale |
| Embedding Retrieval Applies Wrong Service’s Capacity Profile by Name Similarity | Reference profile selected by name similarity without checking architectural compatibility |
| Hyperscaler Cold Start Lag in Auto-Scaling | Scaling decisions assume instant instance availability, but cloud startup takes 2-5 minutes |
Total: 3 patterns
Agent-Driven Autoscaler Repeatedly Scales Up and Down in Short Cycles Because Scaling Decisions React to Instantaneous Metrics Without Accounting for Provisioning Lag
A Capacity-Planning Agent That Selects a Reference Capacity Profile for a New or Under-Profiled Service by Semantic Similarity Over the Service's Name and Description Pulls a Lexically Similar but Operationally Different Profile -- One Built for a Stateless, Horizontally-Scalable API Service -- When Planning Capacity for a Stateful, Single-Writer Cache Service, Recommending an Autoscaling Strategy That Does Not Apply
Auto-Scaling Agent Doesn't Account for Cloud Provider Cold-Start Latency; Instances Take 2-5 Min to Start; Traffic Lost During Gap