RxJava is an incredibly nice library that lets us take our data on a journey through network calls, databases, UI threads and background threads. But how do we actually achieve concurrency, responsibly? Are we testing it to ensure our own sanity? Are we protecting ourselves against race conditions? Is flatMap() and merge() enough? Demonstrating an understanding in creating and testing Rx streams helps us to achieve concurrency in this powerful library.