Everything is reactive. Your application reacts to the click of a button, an incoming message. But also to the result of a database query. Between these events, you want to process other tasks. Being reactive needs a complete approach. Let’s look at the state of reactive programming in Java. Which frameworks are available? Do we have everything to build enterprise grade reactive applications? How to we produce readable and maintainable code? This is the complete overview of reactive programming in Java. We will cover the following libraries: RxJava, Project Reactor, Akka streams.