A Reactive Take on Pokémon GO with Spring Reactive

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 Reactive project is a very positive development (pun intended) and shows the the paradigm-shift towards declarative programming.

The session starts with the basics of Reactive Programming (in a nutshell) after which well quickly move on to the specifics of the Spring Reactive project. The revolutionary game Pokémon GO is then used as a practical use case to show the concept and power of Reactive Programming by rebuilding functionality of the game using Spring Reactive. But before we can dive into what we will develop and how, we need to talk about Streams.

A probably familiar phrase in the Reactive Programming context is “Everything is a Stream.” So, what is a Stream? If you are 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.

Streams are key to Reactive Programming. And as a Pokemon trainer in the game you might not be aware of it, but GPS locations, randomly appearing Pokémons, and throwing pokeballs are just a few examples of some of those Streams. So join us in our adventure of rebuilding Pokémon GO as a Reactive application and we will show you a way of building applications in a declarative way, as opposed to imperatively, resulting in more responsive and resilient applications.

Location: Room 2 Date: 20/05/2017 Time: 11:50 - 12:20 Riccardo Lippolis