Transport migration from RabbitMQ to Azure Service Bus and Delayed delivered messages

Hi all,
I’m writing this post to receive suggestions about a transport migration, following I introduce my scenario and I put my doubts and questions.

I’m working on a small enterprise system consisting of few (< 10) microservices (on-prem), all running NServiceBus 7.2 and connected though RabbitMQ transport. The enpoints make frequent use of Delayed Delivery features and currently there’re few hundred messages scheduled to be delivered in the next months (commands with different destination endpoints).
Recently the company planned to move these microservices to Azure Cloud. As first migration step we decided to plan a transport transition from RabbitMQ to Azure Service Bus in order to have the possibility to migrate later one module at one time on Azure Cloud. For this transition we can obtain a planned maintenance stop and reconfigure all the endpoints at one time if convenient.
In order to complete the transition we also noticed that some endpoint name, queue name and, most importantly, subscriptions could be named differently to respect limits and constraints of ASB, for example we have to define subscription naming conventions and rules to shorten their names.
Turning off RabbitMQ immediately after the transition is not a constraint, if required it can be kept alive for the time required to deliver all the delayed messages.

Having the possibility to operate the transition during a maintenance stop the only doubt I’ve is about the delayed messages and how to have them migrated or forwarded to the new transport.
What’s the best approach to accomplish this task considering also the possible changes occourring to names?

Thank you


At this time I would recommend you look into the NServiceBus.Router community package maintained by @SzymonPobiega. Using that component you can bridge between RabbitMQ / ASB including configuring the new endpoint names.

The documentation for NServiceBus.Router is on our docs site:

  • Bob