Thirst-Quenching Streams for the Reactive Mind
2020-10-03, 13:00–13:40, JVM Languages, Architecture

With the advances in multicore hardware and virtualization technologies, and the demand for highly responsive, resilient, and elastic systems as well as increasingly sophisticated applications, an array of reactive data stream processing libraries have been born to address the needs. So what exactly is "Reactive Streams", and how can it meet our computing needs in today's demanding world?


With the advances in multicore hardware and virtualization technologies, and the demand for highly responsive, resilient, and elastic systems and increasingly sophisticated applications, an array of reactive data stream processing libraries have been born to address the ever-increasing needs. Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure. This encompasses efforts aimed at runtime environments that include JVM and Javascript, as well as network protocols. So how do the various library implementations of Reactive Streams, such as Spring Reactor, Reactive Extension (Rx)'s Observables, and RSocket, stack up against each other?

This presentation will go into some details on how streams leverage on the underlying multicore processor to achieve parallelism. It will then explain the push vs the pull streaming model. It will then use a simple use case with code examples to illustrate the different API usages, as well as runtime processing analysis between a few popular Java implementations of Reactive Streams.