Reactive Programming is in existence for scalable, elastic, resilient (it should always work), highly available, message-driven applications. Think Facebook, Google+, etc.
Reactive Extensions is an API/solution/Tools to achieve a reactive programming paradigm using Observable Streams.
What are reactive extensions?
They are a combination of mainly 3 concepts:
observables + Operators+ Observers.
the relationship between these things --> Reactive Extensions.
Pushing data to subscribed handlers whenever data is generated or available is called an observer pattern.
Pulling data from a data source one value at a time in a synchronous (blocking) pattern is called the Iterator pattern.
The reactive extension is an extension of the Observer pattern with operators.
Enter Operators!!!!!
Observable----data----> Operators---(modified data)---->Observer Function.
This is the way Reactive extension library works---->(RxJS)
It is developed by Microsoft.
In the observable world, events == data, as we know every event passes event-related data (just like eventargs).
EventArgs is nothing but data!