Reactive Streams

Reactive Streams is a specification for asynchronous stream processing with non-blocking backpressure. It defines a minimal set of interfaces and rules to standardize the interaction between stream publishers and subscribers, ensuring interoperability between different reactive libraries on the…

Key facts

First appeared
2013
Category
technology
Problem solved
Reactive Streams was created to solve the fundamental problem of managing asynchronous data streams with backpressure. Before its advent, various reactive libraries existed (e.g., RxJava 1.x, Akka Streams, Vert.x) that offered different abstractions and lacked a common mechanism for flow control, often leading to resource exhaustion (out-of-memory errors) when fast publishers overwhelmed slow subscribers in asynchronous, non-blocking systems. It aimed to provide a standard, interoperable wire protocol for these systems.
Platforms
Any platform where an implementation adheres to the specification, JVM (Java Virtual Machine), JavaScript (conceptually via libraries like RxJS)

Related technologies

Notable users

  • Netflix
  • Pivotal (Spring)
  • Many companies building microservices and data streaming applications
  • Oracle (Java SE)
  • Lightbend (Akka)
  • Red Hat (Quarkus)