Pattern · seen in 5 breakdowns across 5 companies
Feedback-Controlled Load Management
A fixed limit on how much load to accept is wrong as capacity varies, so a feedback loop watches a live signal and adjusts the load limit dynamically.
The mechanism
At its core: a fixed limit cannot match a capacity that keeps moving, so it is wrong most of the time. A feedback loop watches the system and slides the limit up and down to follow capacity, keeping the accepted load close to what the system can actually handle.
A fixed limit sits flat while capacity moves; a feedback loop makes the limit chase it.
Definition
A fixed limit on how much work to accept is an unreliable guess about capacity. Set it too low and the system turns away work it could have handled; set it too high and it melts before the limit ever trips. And capacity keeps moving - faster or slower hardware, a heavier traffic mix, a slow downstream - so any single number is wrong most of the time. Worse, a fixed limit tends to fail all at once: the system keeps accepting work until it suddenly rejects all of it, and the flood of rejections that follows sets off retry storms that recreate the overload.
Feedback-controlled load management replaces the fixed number with a control loop, the way a thermostat replaces a fixed valve setting. The system watches a live signal that reflects real load, such as:
- how long requests wait in line
- how fast work arrives versus how fast it clears
- the slowest response times
- the error rate
It compares that signal to a target and gently adjusts how much to admit. It steers by the trend, not just the latest reading, so it makes small corrections instead of overreacting: a dimmer switch, not a hammer. And because it reacts to what is actually happening, it keeps up with changing capacity on its own, with no one editing a config.
Two ideas sit underneath it:
- measure the system you have, not the one you planned - the loop reacts to real, current behavior, not to a capacity someone estimated up front
- when several controllers share a resource, use one loop, not many - many loops on the same thing fight and swing back and forth; one loop that reads all the signals makes one steady decision
One limit is built in: the loop only reacts after it sees a change, so a sudden spike is absorbed by its response time. That is why it works alongside client-side backoff and jitter, which slow the incoming flood, rather than replacing them. And the loop decides how much to admit; deciding which requests to drop first, when it has to shed, is a separate job for priority-aware load shedding.
When it applies
Tradeoffs
The same move, 5 ways
Every row is a production system that bet on this pattern — the note says how, in that system's own terms.
Often used together
Patterns sharing breakdowns with this one — derived from co-occurrence, threshold ≥2 shared.
Problems this pattern answers
The walls where its breakdowns live — each opens the cross-company comparison.