Reactive Paradigm is used widely in multiple projects around the world with a variety of programming languages. Reactive Approach use a higher level of abstraction than traditional approaches, where developers focus much more on what they need to do instead of how to do it, this approach is called the declarative programming. It uses also an event-driven approach where the application updates itself in response to external and internal events in a form of notifications to controllers. We use it much more on the MVC Pattern as the view is getting all the data it needs from controller in a reactive way, thats why RxJava works perfectly with pattern designs. In this course, we will be using RxJava 2.0, which is the latest version. It includes all the features of Java 8 Lambda expressions and also Modularity and Streams of Java 9 & 10.The course is subdivided as following: Observable and Observers: working and manipulating data streams in a much more seamless wayRxJava Operators: we will use lambda expressions in operators to transform, reduce, suppress and even perform all sorts of actions on data streamsCombinations and multicasting: combining techniques like zipping and merging to put all different observables into one observableFlowables: a great alternative when dealing with huge data sets and with higher velocityConcurrency operators: to make rxjava applications multithreadedTransformers: to compose our own operators and be able to create new ones if neededTesting and debugging: with rxjava testing operatorsWith this comprehensive curriculum student will have a solid knowledge in rxjavaSo lets rock it guys!