Summary
In this chapter, we've learned how to combine Observable
instances, how to create dependencies between them, and how to react to errors. As we've seen in the final example, we are now capable of creating quite complex logic using just Observable
instances and their operators. Adding to that the RxJava modules available on the Internet, we can turn almost every data source into an Observable
instance.
The next step is to master Schedulers. They will provide us with the power to handle multi-threading while coding using this reactive style of programming. Java is famous for its concurrency; it is time to add these capabilities of the language to our Observable
chains, doing multiple HTTP requests in parallel (for example). Another new thing we'll learn is how to buffer, throttle, and debounce our data, techniques that come hand-in-hand with real-time data streams.