Exploring the Reactive Landscape
Presented by: Mary Grygleski
As Java is an object-oriented language that inherently supports the imperative programming style, asynchronicity presents a challenge that can turn the code into nightmare. One way to deal with the complexity of asynchronicity is to introduce reactivity onto the coding level (reactive programming), and/or to handle it on the design and architecture level (reactive systems design).
Reactive programming and reactive systems are not brand new concepts, as the underlying problems that they are trying to solve, namely, concurrency processing and distributed systems, have existed since the beginning of computing time, and there have always been various techniques and implementations that are “reactive” in nature to address those problems. With the advances in multicore hardware and virtualization, plus cloud technologies in the 2010’s, the time has become ripe for reactive software tooling and frameworks to take center stage. This talk introduces the concepts of reactive programming and reactive systems, discusses the Reactive Manifesto and the Reactive Streams specification, as well as highlights a few popular reactive libraries that include MicroProfile Reactive Messaging, SmallRye/Mutiny, Vert.x, RxJava, Spring Reactor, and RSocket.
The takeaways for the audience will be an understanding of the key differences between reactive programming versus reactive systems, the purpose of the Reactive Streams specification, and the strength and weaknesses of each of the surveyed libraries and frameworks.