Streams as a way of life
As you saw in the previous chapter, the fundamental success to reactive programs is to convert events into immutable and observable streams. Program composition becomes very easy and intuitive with this format, and you can create a unifying interface using the .NET Rx extensions.
Note
This is really important to understand, as wielding a hammer like Rx doesn't make you Thor. You don't necessarily start seeing every single implementation as a nail and drive your hammer down on it. As Uncle Ben once advised Peter aka Spiderman - "With great power comes great responsibility".
Let's understand this more by looking at the palette of options available, and making sound decisions on what can be done. Consider the following image:
As you can see in the preceding figure, in terms of unifying the worlds, Rx brings forth bridges that help you work seamlessly across these programming models. To quickly recap what we read in Chapter 11, What is Reactive...