We are looking to start our migration to Azure and are investigating using Azure Service Bus to handle some messaging. The question that came up is what are the benefits or additional features that NServiceBus provides with regard to using Azure Service Bus compared to just only using the Azure Service Bus SDK?
There are a few but the most significant would be abstracting an SDK that appears to be easy peasy in the official documentation but is quite complicated. Especially when the Azure SDK team goes and rewrites it from a scratch. A few times within a few years.
I don’t really want to make a sales pitch for NServiceBus based on this question, so I won’t repeat what we already have on our NServiceBus page. As Sean already mentioned, there are a bunch of features that you get out of the box which you typically end up writing yourself over time if you decide to go with your own implementation. My colleague William has an excellent presentation on this topic that I can recommend: So you want to build a service bus • Particular Software.
NServiceBus is focused to provide you with easy-to-use APIs that your team can learn quickly and focus on implementing business logic right away, rather than diving deep into the specific transports. As Sean already said, the SDKs are changing quite often and you will end up investing non-trivial amounts of time maintaining your Azure Service Bus integration for the whole application lifetime which is time you’re not able to use to solve the business problems.
I also need to point out that there isn’t just NServiceBus but the whole Particular Platform providing additional helpful tools which are extremely handy when building message-based distributed systems.