Summary
In this chapter, we went through the reactive principles and the reasons we should learn and use them. It is not so hard to build a reactive application; it just requires structuring the program in little declarative steps. With RxJava, this can be accomplished by building multiple asynchronous streams connected the right way, transforming the data all the way through its consumer.
The two examples presented in this chapter may look a bit complex and confusing at first glance, but in reality, they are pretty simple. There are a lot of new things in them, but everything will be explained in detail in the following chapters.
If you want to read more about reactive programming, take a look at Reactive Programming in the Netflix API with RxJava, a fine article on the topic, available at http://techblog.netflix.com/2013/02/rxjava-netflix-api.html. Another fine post introducing the concept can be found here: https://gist.github.com/staltz/868e7e9bc2a7b8c1f754.
And these are slides about reactive programming and RX by Ben Christensen, one of the creators of RxJava: https://speakerdeck.com/benjchristensen/reactive-programming-with-rx-at-qconsf-2014.
In the next chapter, we are going to talk about some of the concepts of functional programming and their implementation in Java 8. This will give us the basic ideas needed in the rest of the chapters and will help us get rid of Java verbosity when writing reactive programs.