5

In order to get familiar with RX, I am looking for examples where RX is used in "real world" projects.

I am interested in both, the .NET version or the JavaScript version. References to closed source projects would be interesting. Open-source projects would be even more interesting.

It would also be interesting why RX is a good choice for those projects.

I am not looking for tutorials or introductions.

jbandi
  • 17,499
  • 9
  • 69
  • 81

2 Answers2

13

In less than an hour I was able to add Rx support to MassTransit, an open source ESB:

https://github.com/MassTransit/MassTransit/tree/master/src/MassTransit.Reactive

Update: As for why it's a good fit, they already had a Subscribe/Unsubscribe mechanism in place. Adding Rx support means that those subscriptions can now be composed together easily. For example, you might have two kinds of messages that share some CorrelationId. With Rx you can trivially Join() the published messages by that identifier:

var someMessages = bus.AsObservable<SomeMessage>();
var otherMessages = bus.AsObservable<AnotherMessage>();

var joined = from s in someMessages
             join o in otherMessages
               on s.CorrelationId equals o.CorrelationId
             select new { s.Something, o.OtherThing };

joined.Subscribe(x => Console.WriteLine(x));

Also: Check out https://github.com/reactiveui/ReactiveUI for an Rx-powered MVVM framework targeting XAML (WPF, Silverlight, WP), iOS and Android. Very, very cool stuff.

dahlbyk
  • 75,175
  • 8
  • 100
  • 122
  • Sorry to resurrect an old question, but I've been recently playing with your Reactive extension to MT - any thoughts on how one might get it to "play nice" with unit test schedulers, like the HistoricalScheduler? (very clean implementation, btw!) – JerKimball Nov 19 '13 at 23:45
  • I can't take credit for much of its current state. :) I'd suggest opening an issue on MassTransit to inquire about this (please tag @dahlbyk). – dahlbyk Nov 22 '13 at 14:57
1

Here are two closed source/commercial examples:

  1. Banks are using Rx adapters over their message bus infrastructures.

  2. The makers of Nirvana, a web streaming product will be offering an based API in their next release of the product.

Scott Weinstein
  • 18,890
  • 14
  • 78
  • 115