Ayende @ Rahien

Hi!
My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 18 | Comments: 72

filter by tags archive

Subscriptions: Mass Transit vs. NServiceBus vs. Rhino ServiceBus

time to read 2 min | 263 words

For a pub / sub system, managing subscriptions could be classified as important. All three service buses has some notion, subscriptions are important. I find it interesting to trace the way that each of them is handling this scenario differently.

NServiceBus deal with this as a pluggable strategy. NServiceBus tend to do things that way :-)

The two options that come out of the box with it are database backed subscription storage or a queue backed subscription storage. Just to make things interesting, for queue backed subscription storage, you now have several deployment options at your hand (private subscription storage per endpoint, shared subscription queue, etc).

Mass Transit handle this by treating subscriptions as a service. Again, we have the option to chose between either a subscription storage based on distributed cache (memcached) or a local service running it. In both cases, we are talking about having a well known place to go looking for it.

I don't think that I like this very much, mainly because if you miss that, you get into some very strange situations. (Nothing works, and the first time that this happens, you don't know why).

For Rhino Service Bus, I choose to go with a private subscription storage. That is, each end point store its own subscription directly on the queue that it is using to accept messages. That means that I have only a single place to look for in order to understand how this endpoint is behaving. It also means that I literally have to do nothing in order to start getting messages flowing.


Comments

Jose

Is Rhino Service Bus open source? If so, does it have a public source repository? I think it would be very interesting to follow your development.

Jeremie.Chassaing

Do you use sub queues to store subscriptions ?

Jose

Stefan,

thanks! I don't know how I missed it. :(

Scott White

I'm considering ActiveMQ which is JMS based and has .Net APIs. Spring.Net even provides a framework into it, what do you think about it?

Ayende Rahien

Scott,

ActiveMQ has the explicit notion of pub/sub, rather than what we do with msmq, build on top of that.

I haven't done much with it except playing with it, so I can't really say.

Hadi

It'd be a good idea to add BeforeClose and AfterClose methods (like Before/After start) to the Bootstrapper. Allows me to cleanup additional resources when the host goes down.

Thanks for this great framework. It IS really easier to use and configure.

Julian Birch

Although undoubtedly a good way of doing it, it's rather dependent on the design of your messaging system. You require an MSMQ4 transport, which restricts you to... well, no machines in my current work environment. :(

Ayende Rahien

Julian,

Not quite. The same approach work with actual queues, and there was a patch submitted that make RSB works with MSMQ 3

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

  1. RavenDB 3.0 New Stable Release - 15 hours from now
  2. Production postmortem: The industry at large - about one day from now
  3. The insidious cost of allocations - 3 days from now
  4. Buffer allocation strategies: A possible solution - 6 days from now
  5. Buffer allocation strategies: Explaining the solution - 7 days from now

And 3 more posts are pending...

There are posts all the way to Sep 11, 2015

RECENT SERIES

  1. Find the bug (5):
    20 Apr 2011 - Why do I get a Null Reference Exception?
  2. Production postmortem (10):
    01 Sep 2015 - The case of the lying configuration file
  3. What is new in RavenDB 3.5 (7):
    12 Aug 2015 - Monitoring support
  4. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
View all series

RECENT COMMENTS

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats