Backpressure
Backpressure ensures a consumer signals the producer exactly how many items it can handle via Subscription.request(n), preventing unbounded buffer growth or silent data loss. Unlike #3 Declarative Operator Composition which focuses on data transformation, backpressure directly addresses flow control, transforming the push model into a cooperative push/pull hybrid. Node.js implements this via stream.write() returning false with a highWaterMark of 16 KB, while the Web Streams API uses ByteLengthQueuingStrategy. Apache Pekko Streams 1.6.0 supports 200+ operators with dynamic push/pull: fast downstreams push freely; slow ones pull. RxJava 2 offers onBackpressureBuffer and onBackpressureDrop for unslowable sources like UI events. Uber's uForwarder processes trillions of messages across 1,000+ services with bounded demand as an invariant. A concrete example: streaming large files with backpressure cut memory usage by 70% vs. buffering, proving its critical role in reactive system resilience.
Comments on "Backpressure"
Have a take on this ranking?
Comments are how the argument actually happens here. Posting one needs a free account — it takes about a minute.
No comments yet.
The first comment sets the terms of the argument.