NServiceBus Version 3.3.7 New Features
Lower learning-curve. Simpler configuration. Better integration. More powerful enterprise capabilities.
Here are the major new features:
- NSB Studio: Modeling tools integrated into Visual Studio allowing developers to
focus on their services, the events they publish, and how the components of
those services get deployed without getting mired down in the details of
- Licensing: With the introduction of the Basic Edition, developers can now run
NServiceBus in production on as many machines as they like without having to pay
anything, though the throughput of each endpoint is limited to 1 message per
second in the free version.
- Second-level retries: After an endpoint has completed its immediate retry procedure, failed
messages are moved to another retry process instead of the error queue. These retries can be configured to happen
at greater intervals to handle outages of 3rd party web services or other resources.
You can read more about it here.
- NHibernate and Ninject: The dependencies on NHibernate and Ninject were upgraded -
NHibernate to version 220.127.116.1100 and Ninject to version 3.0.
- Publish/Subscribe Ordering: If subscribers start slightly before publishers for the first time,
NServiceBus no longer throws an exception stating that the queue cannot be found. Subscribers retry their subscriptions
if they aren't successful the first time.
- Less configuration One of the main focus points of the 3.0 release is to
improve the black box experience by following our conventions so only a minimal
amount of configuration is needed. Queue names and other NServiceBus parameters
are automatically being generated by the framework, minimizing the impact NServiceBus has on your systems’ configuration.
- Timeout Management Performance and robustness were improved by replacing the input queue with RavenDB persistence.
A working sample can be found under the Samples\TimeoutManager folder in the downloaded NServiceBus package.
- Cross-site communication The gateway in NServiceBus 3.0 is included in the core
assembly and that means that every endpoint is capable of running a gateway. The
main purpose of the gateway is to allow you to do the same durable fire and
forget messaging that NServiceBus has got you used to across physically
Read more about this topic: Multi-Site with the Gateway or start with an introduction here.
To see it the gateway in action, see this Gateway sample at the Samples\Gateway folder under the NServiceBus package.
- Scaling out The introduction of a MasterNode and Master profile
concept will make scaling out using the distributor easier than before. Feel free
to read more about it, here.
The ScaleOut sample is a working
sample, showing how to start small and then scale out by having another
recieving endpoint working from another host.
- RavenDB Integration Integrating RavenDB within NServiceBus for
persisting things such as Subscription Storage and Saga Persistence, brings some benefits:
- A much more cohesive deployment without worrying about overloading your existing relational databases
- This will save you from having to haggle with your DBAs anytime you want production-ready
storage for NServiceBus
- The integration
of RavenDB will enable us to stop merging NHibernate, but we'll still integrate
with it out of the box. This will make it much easier for you to plug in your
own version of NH instead of ours.
A licensing agreement has been reached that will allow users of NServiceBus to use RavenDB to store NServiceBus-specific data like subscriptions, timeouts, and sagas at no additional cost.
This license does not cover storing any application-specific data in RavenDB.
- Message Attachments Large chunks of data, such as images or video files can
be transported using NServiceBus V3 data bus. The only thing you have to do
is put an attribute over your large property and NServiceBus will take care of
the rest. This is particularly important when running in cloud environments
where limits on message size is usually much lower than on-premise.
A working sample can be found here.
- Versioning A new feature in NServiceBus V3 called Unobtrusive mode let reference use your own events and command classes
without the need to reference any NServiceBus assemblies in order to define messages. This helps greatly when
doing upgrades of the infrastructure itself.
Please see the Unobtrusive here.
NServiceBus now follows adheres to the Semantic Versioning Specification (SemVer) guidelines.
This simplifies version numbering and upgrades to new releases of NServiceBus.
- NuGet packages NServiceBus is now available via Nuget.
This mechanism will allow you to always stay updated with NServiceBus releases,
either major ones or smaller. In addition. You can read more about it
- Best Practices One of the new features in NServiceBus 3.0
is the introduction of two new message interfaces, IEvent and
The purpose is to capture more of the intent of the messages that you as a user are
This will help NServiceBus to enforce messaging best practices and
avoiding common pitfalls.
Please look at the
or under the Databus sample or
Unobtrusive sample for examples on
how the IEvent and ICommand messages are used.
Like always, samples are the best and most enjoyable way to learn
NServiceBus v3.0 new features, please have a look at the \Samples folder:
Start visual studio as administrator when working with the following samples, as
they require to listen on local http port: Gateway,
ScaleOut and WcfIntegration.