NServiceBus 4.0 with support for RabbitMQ and ActiveMQ
Version 4.0 of NServiceBus, a service bus for .NET, has just been released, adding support for RabbitMQ and ActiveMQ in addition to MSMQ, which up till now has been the primary queuing mechanism. According to Udi Dahan, the founder of NServiceBus, this is the biggest release ever, with improvements including:
- Full AMQP compliance at the wire level when using RabbitMQ or ActiveMQ.
- The ability to use database tables as queues, targeted for organisations that prefer having everything in a central database.
- Significantly improved performance for the MSMQ transport.
- In Memory Bus for handling events synchronously, e.g. for implementing the domain events pattern, (in the same transaction).
- New and updated performance and throughput counters.
- An embedded version of RavenDB, (a document database, used by default for internal storage), upgraded to version 2.
- Simplified configuration of NHibernate and transport setup.
- A basic license that now support multithreading.
A new hands-on labs environment allowing a user to test NServiceBus without installation is available by remote access to a machine in the cloud with NServiceBus pre-installed. A scale-out lab with a 4 machine NServiceBus solution has also been added.
The team also released beta versions of two tools, both integrated into Visual Studio:
- ServiceMatrix, a modelling tool allowing developers to work at a higher level of abstraction when designing message-driven service-oriented solutions. The tool gives a logical view of a system, showing e.g. contracts exposed by services, where messages are sent and events caused by these messages.
- ServiceInsight, a debugging tool for visualizing and managing messages flowing through queues and processes, which otherwise can be hard in an asynchronous system.
NServiceBus is based on queued messaging and provides the building blocks for systems based on a service-oriented and event-driven architecture where services are publishing business events and other services are subscribing to these events, utilizing the publish/subscribe pattern and a queue based transport mechanism.
AMQP Support is a big deal
It supports streaming and long polling type clients.
In addition, AMQP + SOAP with WS-Addressing and WS-Security should be ideal for B2B messaging over the internet (even through less trusted intermediaries such as cloud gateways).