Comparison
BackpressurevsLoad shedding
Backpressure
the consumer tells the producer to slow down rather than silently buffering work it cannot keep up with.
A mechanism by which a saturated component signals upstream to reduce its rate. The alternative is an unbounded buffer, which converts a throughput problem into a memory exhaustion problem and hides it until the process dies. Bounded queues that block or reject are the simplest form; explicit credit-based flow control is the sophisticated one.
Full entry →Load shedding
you start rejecting requests immediately with a 503 instead of accepting work you have no chance of finishing in time.
Deliberately dropping a fraction of incoming work when the system is beyond capacity, so the remainder is served correctly. Accepting everything and timing out is worse for everyone: the client already gave up, and you spent the capacity anyway. Shed the cheapest-to-reject and least valuable traffic first, which requires knowing which traffic that is before the incident.
Full entry →