Chapter 7. Testing and Troubleshooting

By now you should understand the basic principles of programming with reactive extensions. So far, we’ve mastered subscription, most commonly used operators, taking advantage of RxJava in existing applications, and writing entirely reactive software stacks. But to make the best of reactive programming, we must dive a little bit deeper. This chapter focuses on a few nontrivial but important aspects and principles, among them:

Understanding a library or framework is not enough to successfully deploy it to production. The aforementioned aspects are crucial if you want to build solid, stable, and resilient applications.

Error Handling

The Reactive Manifesto enumerates four traits that reactive systems should embrace. Such systems should be: responsive, resilient, elastic, and message driven. Let’s take a look at a couple of these:

Responsive

The system responds in a timely manner if at all possible. […] responsiveness means that problems may be detected quickly and dealt with effectively. […] rapid and consistent response times, […] simplifies error handling.”

Resilient

The system stays responsive in the face of failure. […] parts of the system can fail and recover without compromising the system as a whole. […] The ...

Get Reactive Programming with RxJava now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.