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 also8
Streaming Response
Delivering a response incrementally as it is produced rather than all at once when complete.
Networks & Distribution20 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 & Distribution14 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 & Content14 connections
Serial Port
The old, simple connection that sends data one bit at a time, inherited from teleprinters and modems, gone from consumer computers but still the last-resort console for servers, network gear, and embedded boards.
Systems & Tooling10 connections
Ring Buffer
A fixed-size array treated as a loop, with read and write positions chasing each other around it, the standard way to pass a stream of data between a producer and a consumer.
Computation & Algorithms4 connections
Thread Pool
A fixed set of threads kept alive to run many short tasks from a queue, avoiding the cost of creating a thread per task and capping concurrency, with sizing rules and failure modes that shape how servers and runtimes behave under load.
Systems & Tooling10 connections
Connection Pool
A set of open database connections kept ready and lent out to requests, avoiding the cost of opening a new connection each time and capping load on the database.
Data & Content8 connections
Denial-of-Service Attack
Making a service unavailable by overwhelming it with traffic or expensive requests, usually from many machines at once, and the layered defenses that absorb or filter the flood.
Networks & Distribution12 connections
Linked from11
- Circuit BreakerNetworks & Distribution
A circuit breaker stops calling a failing dependency, converting slow repeated failures into a fast, cheap one.
- Connection PoolData & Content
A set of open database connections kept ready and lent out to requests, avoiding the cost of opening a new connection each time and capping load on the database.
- Denial-of-Service AttackNetworks & Distribution
Making a service unavailable by overwhelming it with traffic or expensive requests, usually from many machines at once, and the layered defenses that absorb or filter the flood.
- Exponential BackoffNetworks & Distribution
Waiting longer after each failed attempt, with a dose of randomness, so retries give a struggling system room to recover instead of hammering it.
- 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.
- Pressure Stall InformationSystems & Tooling
A kernel metric for how much time work spent waiting on CPU, memory, or I/O, which measures contention directly where utilization figures only hint at it.
- Rate LimitingNetworks & Distribution
Rate limiting caps how often a client can act, protecting shared capacity by rejecting or delaying the excess.
- Ring BufferComputation & Algorithms
A fixed-size array treated as a loop, with read and write positions chasing each other around it, the standard way to pass a stream of data between a producer and a consumer.
- Serial PortSystems & Tooling
The old, simple connection that sends data one bit at a time, inherited from teleprinters and modems, gone from consumer computers but still the last-resort console for servers, network gear, and embedded boards.
- Thread PoolSystems & Tooling
A fixed set of threads kept alive to run many short tasks from a queue, avoiding the cost of creating a thread per task and capping concurrency, with sizing rules and failure modes that shape how servers and runtimes behave under load.