Functional Reactive Programming (FRP) is a different programming paradigm, just like Object Oriented Programming. It has gotten traction in the recent years where more and more technology adopt it for building responsive, reliable and maintainable systems. Writing multithreading code is usually difficult because you need to think how several pieces move at the same time and work together. In this course I’ll teach you RxJava, the Java implementation of Reactive Extensions to write safe, reliable multithreading code. It’s being heavily in use in Android applications, but this course presents RxJava concepts in a generic way. You don’t need to know anything about Android to use this course, learn and use RxJava in any kind of Java application. You will learn how RxJava compares with Java standard library for writing multithreading code, and the parallel streams introduced in Java 8. In the section about use cases, I present you some examples of how RxJava solves particular challenges, so you can get started quickly. This course is meant to serve as a quick reference, the section about use cases doesn’t follow a particular order, so you can skip and come back to lectures as you see fit. The concepts you learn here will also help you understand other libraries that were inspired by Reactive Extensions.(Music: bensound)