What Enterprise Service Bus would you use and why?
5 Answers
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:
- It's easy to deploy
- Very testable
- Robust and proven in use
- Elegantly handles version changes
- Is no longer open source and free, has very cost efficient commercial options (which are included with for BizSpark Program qualifiers). There is a licence for startups on their Licensing page.
- Has excellent samples, documentation and a strong community to get you started, and there are also training courses available.
Disadvantages:
- 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.

- 263
- 2
- 8
-
4NServiceBus 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 07:19
-
Sadly not as free as it once was. – Josh Anderson Jul 03 '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 07 '14 at 08: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.

- 5,800
- 27
- 26
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/

- 349
- 1
- 4
-
1+1, I'd never heard of PServiceBus before, I guess I know what I'm doing this weekend. – Brook May 07 '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).

- 2,388
- 4
- 18
- 26
-
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 07 '11 at 07: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 07 '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 04 '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 05 '11 at 14:28