Over the past few months I’ve been slowly migrating our endpoints from the AzureServiceBus transport to AmazonSQS using the new NServiceBus.MessagingBridge package. The last piece of this is to get delayed timeout messages moved into SQS. One possibility is to just leave the bridge running and as the timeouts are sent, it handles routing them to the SQS endpoints. Unfortunately, some of our timeouts can be set for up to 10 years in the future so I was hoping there might be a process for moving those delayed messages from the Azure queues to SQS rather than leaving the bridge running just for those timeouts. Is there a recommended way of doing this?
For now, this would have to be done by writing a script to retrieve deferred messages from the ASB queue and copy them over to SQS. But I’ve added a feature request to include this in a future version of the Messaging Bridge. If you need help with the script in the meantime, let us know.
Another option: I believe that Azure Service Bus has a limit of one year for deferred messages and that we add some trickery to check it after a year and delay it again if it needs to be delayed longer. If you stick with the Messaging Bridge, that means it would need to be in place for a year at most. During time, all the messages will be picked up by the bridge, and shoveled into SQS where it will be delayed for the appropriate amount of time.
That’d be RabbitMQ, not ASB.
Thank you! Thankfully this isn’t pressing so I will keep an eye on the feature request and look into the scripting when I have some time. If I have any questions, I’ll let you know. Appreciate the responses!