This document provides an overview of reactive applications and Reactive Streams. It discusses the need for reactive approaches to address increasing performance demands and microservices. Reactive applications are responsive, resilient, elastic and asynchronous. Reactive Streams provide a common abstraction for data streams and asynchronous data sources using an observer pattern. The document also summarizes several Reactive Streams implementations for the JVM like RxJava and frameworks like Spring WebFlux, Play and Vert.x that support reactive programming.