Events and messaging

5 min read

Backpressure: Why a System Must Be Able to Slow the Flow, Not Just Process Faster

When incoming work grows faster than the system can process it, trying to accept everything often ends in a wider outage. Backpressure slows the flow, sets boundaries, and keeps the system manageable.

Incoming requests, events, or jobs can grow faster than a system can process them. This happens during campaigns, bulk notifications, downstream failures, or simply fast product growth.

The naive strategy is to keep accepting everything. Queues grow, memory fills, latency rises, and eventually one overloaded function turns into a wider outage.

What problem are we solving?

Backpressure is a way for a system to say to the source of load: “not this fast right now.” That can mean pausing, reducing throughput, rejecting some work, limiting queue size, or lowering priority.

The goal is not to make the product slower. The goal is to prevent unbounded demand from accumulating after physical processing capacity has already been reached.

A well-designed system knows in advance which operations can wait, which can fail fast, and which must continue even under pressure.

What does the business get?

The main benefit is predictable behavior during overload. Instead of an uncontrolled global outage, the business gets managed degradation.

This matters when operations have different value. A payment, order confirmation, or login may deserve capacity before recommendation refreshes or background analytics.

Backpressure also makes capacity problems visible. If queues are constantly full, the answer is not another retry. The company may need more capacity, different priorities, or a different process.

What does the team get?

The team gets explicit load boundaries and fewer cascading failures. Queues stop growing without limit, and one slow consumer is less likely to destabilize everything else.

But the source must understand the signal. If clients cannot slow down or retry later correctly, pressure is merely pushed somewhere else.

What does the customer get?

The customer may see a slower response or an occasional explicit failure instead of a completely unavailable product. That is worse than perfect operation, but usually far better than a total collapse.

Retry behavior must be clear so users do not create duplicate operations because the system left them uncertain.

What do we pay for it?

We have to design limits, queue sizes, priorities, and degradation rules, then measure lag and throughput.

Backpressure that is too aggressive rejects useful work too early. Backpressure that is too weak does not protect the system.

When is backpressure unnecessary?

If demand is naturally limited, workloads are small, and there is plenty of spare capacity, a sophisticated pressure-control mechanism can be overkill.

It becomes important with queues, streaming, unstable consumers, or sharp traffic spikes.

What should we ask before deciding?

In the end

Backpressure is not about speed. It is about control.

For the business, it turns overload from an unexpected general outage into a predefined operating mode with explicit priorities.