The concept of Reactive Programming is hardly new. It started in 1975 as event-driven programming--which is nothing more than designing software to respond to event stimuli rather than invoking methods in an imperative way. Modern architectures--especially those dealing with mobile applications or devices--have such high throughput and such low latency demands that imperative architectures have proven to be inadequate to accommodate the load placed on applications by high-volume user traffic as well as an exponential increase in data exchanged between network peers as applications have had to become “smarter” to adapt to changing business patterns.
This session will introduce the concept of Reactive Programming as it has developed over the decades and how it addresses the demands of modern architectures by making more efficient use of a relatively small number system threads by not blocking them but by instead providing ways to respond to events. The community project called Reactive Streams will be introduced. Reactive Streams is an engineering cooperative between a number of industry leaders to define and implement a standardized asynchronous contract to build reactive applications that benefit from non-blocking backpressure to provide predictable performance characteristics and low latency for high-volume applications.