Monday 1 April 2013

MSMQ vs SSSB vs Azure Service Bus

There are so many queuing solutions available, both commercial and open source, that it is not funny. Some of the queue solutions come in-built with Microsoft products such as MSMQ, SQL Server Service Broker, Azure Service Bus, Service Bus for Windows.
 
Like all other technology spaces that are crowded with similar solutions, each product/solution has its strength and weaknesses in this case too. Well, that makes things easier for us, the confused souls, in choosing the most appropriate option for ourselves. An interesting point to note is that all of these solutions provide functionalities that are similar in nature e.g. reliability of message delivery, transactional sanctity, poison message handling, journal. Here is my understanding of the three very viable options for a queue based implementation -
 
MSMQ - Possibly one of the oldest queuing solutions available on Windows ecosystem. It has evolved over the years and is perfect for cases when you want to maintain reliability of message delivery across servers that perform different jobs specially when one (or all) system falls under "occasionally offline" category. There is even a feature that allows MSMQ to be exposed over HTTP/HTTPS.
 
SQL Server Service Broker - SQL Server Service Broker is perfect choice for the cases where you need messages to be processed in a sequence inside SQL Server itself. Of course it can be used otherwise too.
 
Azure Service Bus/Service Bus for Windows - Both are great for the cases where two systems need to talk despite the network challenges e.g. Firewall across organizations etc. Both Azure Service Bus and Service Bus for Windows allow communication over HTTP and TCP. Also, they have Fabric Controller as their core component and therefore can easily scale with very little downtime. Not to forget that 1) it supports AMQP standard and therefore can easily be consumed from applications that run on other platforms 2) it supports Topics (publish/subscribe) in addition to the regular queues to allow multiple subscribers for an item 3) generally supports many messaging patterns 4) Supports better security mechanism via ACS/STS.

3 comments:

  1. It was really a nice post and i was really impressed by reading this
    Azure Online Training Bangalore


    ReplyDelete
  2. wonderful article. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article.The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
    oracle training in chennai

    oracle training institute in chennai

    oracle training in bangalore

    oracle training in hyderabad

    oracle training

    oracle online training

    hadoop training in chennai

    hadoop training in bangalore

    ReplyDelete
  3. Excellent post, Smart Little Keys

    ReplyDelete