These last few years Reactive Programming has found the hearts of a significant amount of developers. The fact that Spring 5 will incorporate the possibility of programming Reactive Systems in its core framework through the Spring WebFlux project is a very positive development (pun intended) and shows the the paradigm-shift towards declarative programming. A probably familiar phrase in the Reactive Programming context is “Everything is a Stream”. So, what is a Stream? If you’re familiar with Futures, which abstract the delivery of a single value asynchronously in the future, and Iterables, for accessing a sequence of items which have an unknown length, then you can think of a Stream as essentially being a hybrid of the two: a mechanism for asynchronously receiving multiple items. The session starts with the basics of Reactive Programming (in a nutshell) after which we’ll quickly move on to the new Reactive Streams specification to follow up with the specifics of the Spring WebFlux project. So let us introduce you to a way of building applications in a declarative way, as opposed to imperatively, resulting in more responsive and resilient applications.