In 2014, the Reactive manifesto defined 4 properties a Reactive system should provide: responsive, resilient, elastic and message-driven.
In 2015, the Reactive Streams specification was published, providing a set of interoperable interfaces for reactive frameworks gaining popularity such as Eclipse Vert.x, Akka, RxJava or Reactor. These frameworks help developers build Reactive systems by giving constructs to write non-blocking, back-pressure aware code. Now, the Reactive Streams API will become a part of Java 9 in java.util.concurrent.Flow, encouraging the adoption of Reactive types by more libraries and frameworks.
So, what's the deal? Reactive is a hot topic these days because it helps write more efficient systems that do more with fewer threads, scale better, and handle errors more gracefully. The Reactive paradigm will make you write better code, whether it is a library, phone apps, serving Web/REST, a monolithic back-end or a myriad of microservices.
This talk will shed some light on how Reactive works, what's back-pressure, and help you choose the right Reactive framework.