PATTERN Cited by 1 source
N-ring fade-in¶
Definition¶
N-ring fade-in is a load-balancing pattern that handles scale-up events by creating a new consistent-hash ring (a superset of the established ring) for each event, then gradually shifting traffic to the new ring over a configurable window. Multiple concurrent scale events each maintain their own independent fade-in window, preventing interference.
How It Works¶
When the Horizontal Pod Autoscaler adds pods:
- A new ring is created containing all established pods plus the new ones.
- Traffic shifts to the new ring using a power curve (^2.5 at Zalando: slow start, rapid finish) over 30 seconds.
- If a second scale event arrives during fade-in, it gets its own independent ring and window โ a nearly-completed fade is never disrupted.
- Pod deletions are applied immediately to all rings.
- Once a fade completes, the new ring becomes the "established" ring, replacing the previous one.
- All state sits behind a single atomic reference โ each ring swap is a fresh immutable snapshot.
Why It Matters¶
Traditional fade-in (e.g., Skipper's probabilistic pre-filter) warms new pods with traffic they may not serve at steady state. N-ring fade-in assigns pods identical positions across all rings, so traffic received during fade-in is exactly what they'll serve long-term. This eliminates wasted cache entries and eviction churn.
| Elapsed | Progress | Traffic share |
|---|---|---|
| 3s | 10% | 0.3% |
| 9s | 30% | 4.9% |
| 15s | 50% | 17.7% |
| 21s | 70% | 41.0% |
| 27s | 90% | 76.8% |
| 30s | 100% | 100% |
Seen In¶
- systems/zalando-prapi โ used in the client-side load balancer to eliminate cold-cache scale-up spikes (Source: sources/2026-06-22-zalando-client-side-load-balancing)