Skip to content
STUB

Backpressure

The pattern: when a consumer can’t keep up with a producer, signal slow down instead of buffering forever. Bounded queues. Worker pools. Semaphores. Circuit breakers. Without backpressure, systems fail with OOM or cascading downstream collapse — usually at 3am.

The trade-off: throughput vs. stability. Unbounded buffers maximize short-term throughput; bounded ones cap throughput but bound resource usage. Drop-on-full vs. block-on-full vs. shed-load policies all have failure modes. Reactive Streams (Java/JS) and Go’s bounded channels both implement explicit backpressure protocols; TCP gives you backpressure for free at the network layer.

[Deepen Year 1 Phase 5 — pulse’s bounded worker pool is the concrete example.]

  • Delivery semantics — at-least-once + slow consumer is exactly when backpressure stops a queue from melting.
  • Fault isolation — bulkheads + circuit breakers are backpressure with a blast-radius story.
  • Idempotency — shed-load policies require retries; retries require idempotency.
  • Caching — caches absorb burst, but only until they don’t; backpressure is the floor under that.
  • SLI / SLO / error budget — load-shedding policies are the operational expression of an error budget.

First touched in Year 1 Phase 5 via pulse’s bounded worker pool; revisited under load in Year 2 Phase 8.