The resistance a full consumer pushes back at an eager producer. The pipe has an opinion about your speed.
The producer pumps tokens far faster than the consumer can swallow them. With backpressure off, the buffer fills, tops out, and every token that arrives to a full buffer simply falls on the floor — data loss, dressed up as throughput. Switch backpressure on and a refusal travels the wrong way up the pipe: the buffer tells the producer to wait, the producer obeys, and the rate at the fast end drops to match the slow end. The buffer sits pinned near full and not one token is lost. It looks like congestion. It is the system keeping its promises — the pipe pushing back exactly hard enough.
Back pressure is a plumber's and engineer's term — the pressure that opposes the desired flow in a pipe or exhaust. Push fluid faster than the outlet allows and it pushes back, upstream, against the source. The word arrives in computing already knowing exactly what it means.
When Doug McIlroy's pipes joined Unix, they came with a quiet discipline: write into a pipe whose buffer is full and your process simply blocks until the reader catches up. The kernel applies back pressure between programs automatically. Producers cannot outrun consumers, because the pipe will not let them.
TCP flow control is back pressure as a number in every packet: the receive window, the receiver telling the sender precisely how many more bytes it has room for. Fill the window and the sender must wait. The most-deployed protocol on earth is, at its core, a consumer saying slow down.
Reactive Streams and libraries like RxJava and Project Reactor made back pressure a first-class verb. Instead of a producer firing events at whatever speed it likes, the subscriber requests a specific number of items. Demand flows backward; data flows forward only as fast as demand allows.
In message systems the back pressure signal is queue depth — consumer lag, the gap between what was produced and what has been handled. Lag climbing is the buffer filling: the tank reddening before your eyes. Ops teams alert on it because it is the early warning the pipe always gives.
Email is an unbounded queue with one slow consumer: you. The unread badge is exactly the buffer level in the tank — a producer that never throttles, a consumer that cannot keep up, and a number that only goes up. The word describes your inbox as precisely as it describes a kernel.
gRPC streaming, Kafka, Flink, the event bus behind your favourite app — all of them must answer one question: what happens when the consumer falls behind? Graceful back pressure means the system slows down. Its absence means the system falls over, dropping messages with your name on each one.