As noted in previous chapters, Reactive Extensions (Rx) is an extension of LINQ. The key, distinguishing feature of Rx is that rather than being based on
IEnumerable, Rx is based on
IObservable—that is, the interface for iterating over an observable collection. This, in turn is based on the Observer design pattern as described in Design Patterns.1
The essence of the Observer pattern is that the observable object (sometimes called the subject) has actions or properties of interest to one or more observers. When the observable changes in a way that might be of interest to the observers, it notifies them (typically by raising an event).
The nomenclature can be confusing because the Observer pattern is a subset of the Publish ...