What Enterprise Service Bus would you use and why?


I'd recommend looking at NServiceBus. It is a powerful, open source service bus solution that uses a one-way messaging approach. It can be scaled from a small single machine installation to extremely large grid-based high throughput scenarios. It sits on top of MSMQ and MSDTC but can be used with a variety of other transport mechanisms, including Windows Azure. , but there is work being done to put it on Azure.

Since version 4 optional design and monitoring tools are now available and are collectively named the Particular Platform.

Some key advantages:


  • As far as I know, it only runs on Windows (although Azure options coming in v3.0 and are already on the trunk if you're brave).
  • Requires MSMQ and MSDTC to be installed

Edit 2019: NSB is still going strong and is an excellent choice. But, in 2019, I would now recommend looking at Rebus which is a excellent free and open source .Net service bus. I have been using this now for over 5 years and it it simple to use, has advanced features and also the benefit of being free! It also runs on .Net Core.

  • 4
    NServiceBus is not open source, in the sense that you can get the source code and use it freely. It's open source in the sense that you can download the source code and use it subject to a specific commercial license or a restrictive Express license. – Eric J. May 10 '12 at 7:19
  • Sadly not as free as it once was. – Josh Anderson Jul 3 '14 at 20:02
  • Josh - no, it is now commercial. However it does offer a free startup licence, which you can get from their licensing page. – Sean Kearon Jul 7 '14 at 8:18
  • @EricJ. You are essentially talking about the difference between OSS and FOSS. If the source can be viewed (regardless of licence) it is by definition OSS. – Adam Naylor Aug 26 '15 at 14:02

Somewhat late to the party but I would use Shuttle ESB (http://shuttle.codeplex.com/).

Mostly because I wrote it :)

It is a distributed ESB with a highly decoupled architecture. The core assemblies have no direct dependencies on third party assemblies although they may be incorparated by using some adapter interfaces.

IQueue 'out-of-the-box' implementations include Msmq and Sql Server. Pub/Sub is there. Distributor is there. Includes a management console and health monitor. Message Forwarding is there. There is even CRON job scheduling.


NServiceBus is fairly popular in the .Net landscape. We are just starting to incorporate it, so I can't really offer any opinion on it yet.


You can also use PServiceBus because it provides a simple api for communication between application with variety of transports(MSMQ, RabbitMQ, Redis, RavenDB, TCP, WebService, HTTP, Email, and custom adapter option) and transformation(xml, csv, json, text). It also provide a javascript api/rest for use in the browser. For more information and samples usage visit http://pservicebus.codeplex.com/

  • 1
    +1, I'd never heard of PServiceBus before, I guess I know what I'm doing this weekend. – Brook May 7 '11 at 18:43

You should look into the Microsoft BizTalk ESB Toolkit.

I've used is successfully on several projects. There really is not a better powerhouse product for enterprise development out there (on the windows platform at least).

  • Can you substantiate, with some detail, your phrase: "There really is not a better powerhouse product for enterprise development out there"? – Robert Harvey Mar 30 '11 at 18:41
  • ESB has Enterprise in the name but it doesn't mean that you want to use it only in enterprise. Price of BizTalk based solution is enormous. – Ladislav Mrnka May 7 '11 at 7:42
  • BizTalk is expensive, but compared to other solutions like IBM WebSphere, the cost is a fraction of what it might be. That being said however, it is all dependent on what kind of functionality that you need plus what stack are you already bought into as well. – aceinthehole May 7 '11 at 15:11
  • BizTalk is expensive, requires specialised skills to develop, deploy and manage. The unit testing of your solutions is not a straight forward as other options. I strongly suggest NServiceBus unless you have BizTalk development and management skills along with pretty deep pockets! – Sean Kearon Jun 4 '11 at 10:47
  • There's also the small matter of BizTalk using brokered messaging, which makes it actually not a real bus, so you can kiss your performance goodbye if you're working with high-throughput scenarios. Nothing against BizTalk, FWIW - it's a great tool for integrating legacy architectures and individual systems that already have their own, incompatible messaging systems, like a SalesForce or Oracle implementation, where it makes no sense to write reams of mapping code. But for new product development, where you're already control of all the pieces, I wouldn't touch BizTalk with a ten-foot pole. – Aaronaught Jun 5 '11 at 14:28

Not the answer you're looking for? Browse other questions tagged or ask your own question.