Fala galera!
Antes de compartilhar meu experimento achei válido compartilhar algumas coisas com você.
Em primeiro lugar a documentação atualizada. Aqui é a classe Observable que é um ponto de partida para o estudo da programação reativa: https://docs.microsoft.com/en-us/previous-versions/dotnet/reactive-extensions/hh244252%28v%3dvs.103%29.
Lembrando que o padrão Observer é um design pattern já conhecido e as Reactive Extensions, implementadas praticamente em qualquer linguagem moderna hoje, é uma abstração sobre este pattern d forma a tronar a criação, composição e consumo de fluxo de dados ainda mais fácil e elegante.
Neste padrão temos dois atores, os Observables que são os fluxos de dados em si e fornecem as informções quedevem ser processadas, e os Observers que reagem aos fluxos de dados e executam as regras de negócio.
Im Observer implementa um método OnNext que ;é chamado para cada elemento do Observable. Caso ocorra um erro é chamado o método OnError passando-se a excessão disparada. Já ao terminar o fluxo é chamado o OnCompleted.
É realmente muito interessante o quanto o padrão, tão antigo e simples, trouxe para nós uma facilidade tão grande nos dias de hoj.
Bons estudos.
Até amanhã!