Using mismatched versions of NServiceBus for Producer and Consumer

We have an application that has been using NServicebus for a single endpoint (as a message producer.) It now needs to be integrated with another application that would use NServiceBus, but it is built and running on a different version. Can I produce message by upgrading to the newest version of NServiceBus and expect it all to work? Do I have to upgrade all of my producers/consumers of the same message at the same time? If I have 10 apps that produce a message (send only), and 1 application that has the handler, do they all have to upgrade together, and drain the queue? In the worst case I’m upgrading from v6 => v8. using SqlServer for persistance/transaction, if either of those matter.

Welcome to the Particular discussion group, @patrickrobbins.

NServcieBus messages are wire backward compatible. More information in our documentation: Support Policy • NServiceBus • Particular Docs

No, there is no need to upgrade them all at the same time.

The only requirement for different endpoints to talk to each other is that they use the same serialization format. However, you can also have multiple receiving serializers for the purpose of dealing with more than one serializer.


Thanks! That helps a lot!

I believe that I noticed a change in the default serialization in V8, where it no longer uses some of the newtonsoft type information serialization. Is that something that we should look out for?

There are no changes to the default serializer. All NServiceBus versions up to v8 use a custom XML serializer by default.

The documentation you’re referring to describes a change in the Newtonsoft Json serializer to address a potential security vulnerability.