Cards/ReliabilitySystem Design · Day 19Aug 19, 2026

Say No Before You Have To

Say No Before You Have To — system design card, day 19, reliability

Traffic triples. You want to serve everyone. So you accept every request.

Queues grow. Latency climbs. Requests that are already doomed keep consuming CPU, memory and database connections — all the way to their timeout, at which point the client has already given up and the work is thrown away.

You served nobody. Slowly.

Load shedding is the opposite instinct: reject early, reject cheaply, and protect the requests you can actually finish.

StrategyOutcome
Accept everything100% served badly, 0% on time
Shed 30%70% served properly

The hard part is choosing who gets refused:

→ health checks and payments — never

→ retries before first attempts

→ the analytics endpoint before the checkout

And refuse fast. A 503 in 2ms costs almost nothing. A timeout at 30 seconds costs everything you had.

Capacity you don't have isn't created by agreeing. Saying no early is how you keep your yes worth something.