What death spirals forbid
Why is background work never free, and why is restart not a reset?
What this article forbids
- It forbids treating background work as free. Compaction, collection, warming, rebalancing and catch-up all use the resource that serves the foreground, and their demand depends on foreground throughput. "It runs in the background" means "it competes, and it competes hardest when you are busiest."
- It forbids best-effort deferral. If the cost of paying rises with the balance, the debt must be bounded by a hard stop. Every mature system has one: write stalls, OOM kill, admission control, watchdog. A deferral mechanism without a stop is a way to reach an unrecoverable state slowly.
- It forbids the belief that restart is a reset. Restart is a move to the worst reachable state (cold, backlogged, herded). That is why restart is the operation most likely to turn a degradation into an outage.
Escapes and costs
| Escape | Bounds | Paid in |
|---|---|---|
| Concurrency limit (caps L via Little's Law) | Live set, GC cost | Rejected requests; capacity planning required |
| Off-heap / arena allocation | Tracing cost of stable state | Manual lifetime management |
| Ingest rate limit below λ_max | Compaction debt | Throughput ceiling made explicit |
| Write stall | Unbounded L0 | Total loss of write availability |
| Asymmetric control + hysteresis | Autoscaler oscillation | Over-provision on the up side |
| Reserved catch-up capacity | Recovery drain time | Idle resource |
| Drop or LIFO the backlog | Downstream replay storm | Data loss; broken ordering |
| Rate-controlled readmission | Cold-start collapse | Extended unavailability during warm-up |
| Staggered restart / warm peers | Fleet-wide cold state | Slower deploys |
Every one of these is a deliberate reduction of peak throughput to get bounded behaviour. That is the price of this entire article.