Architecture

Backpressure

A signal from a slow consumer asking the producer to slow down.


In plain terms

Without it, queues grow until OOM. Reactive Streams and HTTP/2 flow control bake it in; most systems retrofit it badly.

Origin

Term used loosely until Reactive Streams (2014) gave it a precise interface. HTTP/2 (2015) added per-stream flow control. Without backpressure, queues grow until OOM — the most common cause of cascading outages.

Where it shows up in production
  • Reactive Streams (Java) request(n) is the explicit backpressure signal — the downstream tells upstream how many items it can take.
  • gRPC streaming HTTP/2 flow control gives transport-level backpressure for free.
  • Kafka consumer pause consumer.pause() / .resume() is the backpressure handle for batch workers.
Sources & further reading
Found this useful?