Backpressure
Backpressure is a slow receiver telling a fast sender to hold up, so a queue grows on purpose instead of by accident.
Backpressure is what a system needs when a producer can generate data faster than a consumer can process it, and something has to give — either the sender slows down, the extra data gets buffered, or it gets dropped. The term names the mechanism of pushing that signal back upstream deliberately, rather than letting an unbounded queue grow until memory runs out or the consumer falls arbitrarily far behind.
TCP has backpressure built in at the transport layer: the receive window tells a sender how much buffer space the receiver has left, and the sender must stop when it fills up, which is why a slow reader on one end of a TCP connection eventually makes the writer on the other end block too, all the way back through the chain. Streaming APIs replicate this idea in software — Node's streams, reactive extensions, and similar libraries all expose a way for a consumer to say "pause" and for the producer to respect it, instead of firing events into an unbounded buffer.
The alternative to real backpressure is an unbounded queue, which feels fine until it isn't: the queue grows silently under load, latency climbs as everything waits in line, and the system fails suddenly rather than gracefully when memory or disk finally runs out. Backpressure converts that hidden failure into a visible, immediate signal — the producer either blocks, drops the newest data, or drops the oldest, and each choice is a deliberate policy rather than an accident of running out of room.
It's the flip side of Rate Limiting: rate limiting is a hard external cap a service imposes on callers, while backpressure is a live, continuous signal a receiver sends about its actual current capacity. A Circuit Breaker is what a caller reaches for once backpressure has been ignored long enough that the dependency looks fully down rather than just slow.
See also5
Rate Limiting
Rate limiting caps how often a client can act, protecting shared capacity by rejecting or delaying the excess.
Networks & Distribution4 connections
Circuit Breaker
A circuit breaker stops calling a failing dependency, converting slow repeated failures into a fast, cheap one.
Networks & Distribution5 connections
Streaming Response
Delivering a response incrementally as it is produced rather than all at once when complete.
Networks & Distribution17 connections
Latency and Jitter
Latency is how long a packet takes; jitter is how much that time varies — and the second often matters more.
Networks & Distribution6 connections
Message Queue
A buffer that decouples a producer from a consumer in time, so neither has to be up, fast, or reachable at the same moment.
Data & Content7 connections
Linked from4
- Circuit BreakerNetworks & Distribution
A circuit breaker stops calling a failing dependency, converting slow repeated failures into a fast, cheap one.
- Latency and JitterNetworks & Distribution
Latency is how long a packet takes; jitter is how much that time varies — and the second often matters more.
- Message QueueData & Content
A buffer that decouples a producer from a consumer in time, so neither has to be up, fast, or reachable at the same moment.
- Rate LimitingNetworks & Distribution
Rate limiting caps how often a client can act, protecting shared capacity by rejecting or delaying the excess.