Wednesday, August 19, 2009

Orinoco vs Reactive Framework

I have been doing a bit of playing around with the new Reactive Framework (Rx) lately. And, I like what I see so far.

The first thing that came to mind was how the Orinoco team was going to resolve the fact that another LINQ-based streaming API was coming out of a "competitive" group in Microsoft.

A little birdie has told me that recently, Microsoft merged several of the competitive division, and that Orinoco product was going to use Rx as the LINQ-based surface API.

If this is true, will this mean that we all have to wait until .NET 4.0 in order to use Orinoco? Or, will there be a .NET 3.5 SP2 that contains the necessary Systems DLLs? If .NET 4.0 is required, it would be an interesting situation for a lot of the very large customers (like us) who are quite a ways away from even looking at .NET 4.0. Not to mention the certification process that most companies have to go through before adopting a major .NET release.

By the way ... Too bad that I had to hear this news from external sources, as the Orinoco team has gone very quiet lately. Let's just hope that it's because of the summer vacation, or because their developers are heads down in code. And, like Matt Davey pondered ... How can they be releasing CTP 2 when CTP 1 has not even gone out yet?

(Note : All references to Orinoco should be changed mentally to StreamInsight. Too bad, because I like the name Orinoco much better.)

©2009 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.


Don Demsak said...

Don't think you needed a little birdie, as this is in the readme.txt
"An alpha version of the StreamInsight libraries for development using the IObservable/IObserver programming paradigm."

I'm guessing IObservable/IObserver = Rx, but maybe not?

Also, merging CSD with SQL is public (announced in April, although somehow I missed it until recently).

Charles Young said...

As Don says, the merger of Connected System Division and the Data and Storage Platforms Division to form the new Business Platform Division happened a few months ago. Eric Meijer works for the new division. It is reasonable to hope that the StreamInsight team knows about Rx, but there doesn't appear to be a direct link at present. IObserver and IObservable in StreamInsight CTP2 are quite different to the interfaces defined in the Rx CTP. Interestingly, though, the StreamInsight interfaces have been defined in the root 'System' namespace which suggests they may be destined to be included in a future version of .NET. And lo, .NET 4 will indeed include new IObserver and IObservable interfaces as part of the Base Class Library (BCL). The interesting thing is that these new System interfaces have been designed in conjunction with Eric Meijer.

So, I don't know what the facts are for certain, but my best guess would be that there is an effort underway to at least standardise these two interfaces for both StreamInsight and Rx.

Charles Young said...

Erik Meijer and Beysim Sezgin posted some information on this at the StreamInsight blog site (see The main point made is that StreamInsight will target .NET 3.5, and so provides its own implementaions of these interfaces.

I tried to post a comment to ask if the longer term plan is to standardise on the new IObserver/IObservable interfaces introduced into the .NET 4 BCL, but unfortunately the CAPTCHA wasn't working properly.

Anonymous said...

Charles, Could you please try again? We tested the CAPTCHA and it seems to work now. Thank you for your feedback.
StreamInsight Team

Charles Young said...

Still can't use the CAPTCHA, I'm afraid. No image is displayed. I've tried this using different browsers (IE8 and Chrome), different network connections (in entirely different parts of the world), etc. The URL for the CAPTHCA image is "" which just returns an error message when you try to navigate to it directly.