liveBook · Manning

Backpressure

Backpressure is a flow-control mechanism in which downstream capacity constraints prompt upstream producers to slow, limit, pause, or reject work or data.

How 6 Manning books explain it

Go in Practice, Second Edition

Back pressure is the buildup of pending data when a producer sends faster than a downstream consumer or network can process it.

How it is used
Frames slow network logging as a service risk and motivates buffering or UDP as alternative responses.
How deep it goes
Explains a busy-server TCP logging scenario and its UDP trade-off; proposes buffering without supplying its implementation here.
Examples
Uses a busy log server and a Go UDP logger built with net.DialTimeout and log.New.
What you can do after
Evaluate/understand it by weighing application slowdown against possible log loss when choosing TCP, buffering, or UDP logging.

Read how Go in Practice, Second Edition explains backpressure →

Cloud Observability in Action

Backpressure is a flow-control mechanism in which a downstream component signals upstream producers to reduce or regulate data transmission when capacity is constrained.

How it is used
Protects telemetry backends from high-rate log or span producers by regulating delivery across queues and intermediate collectors.
How deep it goes
Explains queue-based decoupling and multihop signaling, but stops short of detailed queue sizing, failure policy, or capacity calculations.
Examples
Uses an OpenTelemetry collector, Kafka broker, scheduled Lambda function, and S3 bucket to illustrate decoupled telemetry delivery.
What you can do after
Operate/configure telemetry delivery with queues and OTLP-aware collectors when producer rates exceed backend capacity.

Read how Cloud Observability in Action explains backpressure →

Rust in Action: Systems programming concepts and techniques

Back pressure is a flow-control mechanism that slows or blocks producers when a consumer or buffer cannot keep up.

How it is used
Controls producer speed when channel consumers or buffers cannot keep up.
How deep it goes
Defines bounded-queue behavior and trade-offs, but stops short of implementing a bounded queue example.
Examples
Compares bounded and unbounded crossbeam queues under contention and asynchronous messaging.
What you can do after
Operate/configure crossbeam channels while weighing memory bounds against producer waiting.

Read how Rust in Action: Systems programming concepts and techniques explains backpressure →

Logs and Telemetry

Backpressure is a condition in which a downstream component cannot consume events as quickly as an upstream component produces them.

How it is used
Protects Fluent Bit ingestion pipelines when producers outpace event consumption.
How deep it goes
Explains causes, likely blocking behavior, buffering, and alternative collection paths without detailing Linux flow-control internals.
Examples
Demonstrates fast simulator stdout, Fluent Bit stdin capture, buffering, and file-based collection.
What you can do after
Diagnose producer blocking and select buffering, simpler parsing, downstream processing, or file-based collection.

Read how Logs and Telemetry explains backpressure →

Clojure: The Essential Reference

Back-pressure is flow control in which a downstream capacity limit slows or pauses upstream production.

How it is used
Controls lazy sequence production while consumers process buffered results, especially during look-ahead pagination.
How deep it goes
Demonstrates buffering, capacity monitoring, and a queue-based implementation, while deferring asynchronous callback handling to core.async.
Examples
Uses fast and slow producers, paginated filesystem scans, queue occupancy counters, and bounded LinkedBlockingQueue experiments.
What you can do after
Operate/configure seque with buffer sizes or custom queues to balance producer throughput against consumer speed.

Read how Clojure: The Essential Reference explains backpressure →

Latency

Backpressure is a flow-control technique that causes producers to reduce or pause transmission when consumers cannot process incoming data at the same rate.

How it is used
Manages concurrency in asynchronous systems so producers do not overwhelm consumers, buffers, or system resources.
How deep it goes
Explains producer signaling, TCP receive windows, buffering, rate limits, dropping, and latency trade-offs without detailing a complete implementation.
Examples
Uses buffered client requests, TCP transmission windows, video-frame buffering, and 100-requests-per-second API limits.
What you can do after
Operate/configure asynchronous services by throttling producers, sizing buffers, delaying reads, rate-limiting clients, and retaining overload safeguards.

Read how Latency explains backpressure →

Related concepts

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.