This document discusses Reactive Extensions (Rx), which provides interfaces and methods for implementing "pull-based" or observable systems. It describes the difference between pull-based and push-based models. Rx includes IObservable and IObserver interfaces for creating and observing asynchronous data streams. It also includes Observable and Observer classes that make it easier to create observables without defining classes. Rx integrates with LINQ to add query operators for observables.