Amazon MQ Transport?

Hi

We are considering moving our transport from Azure ServiceBus to Amazon MQ, but I cannot find any information on either Amazon MQ or ActiveMQ. Only some really old articles about ActiveMQ.

Is Amazon MQ not supported?

BR,

Morten

Hi Morten,

At the moment, we support only SQS as a transport on the AWS side of things (Amazon SQS Transport • Particular Docs). There was an experimental ActiveMQ transport some years back but it’s been abandoned.

We’re investigating support for Amazon MQ for the future. I’ve recorded your interest in it to help us prioritize things.

– Kyle

1 Like

Hi @Morten_Teinum,

Hope you’re well.

I was investigating whether I can move our on-prem services over to AMQP/Artemis but obviously hit an issue that there’s no supported AMQP/Artemis transport. So, I’ve started developing one. You’ll find the code here: GitHub - m-monaghan/nsb-amqp-transport: NServiceBus AMQP Transport

It’s early days (literally) but it might help get you started … obviously happy for contributors :smiley:

Cheers,
Marcus

Hi folks

You might want to sync with Havret (not sure if he reads this forum). I talked to him some time ago and he pointed out some problems with NMS. As a result, he is developing an unofficial Artemis driver for .NET.

Cheers,
Szymon

Hi all,

As @SzymonPobiega said I’ve been working for the last half a year on a .NET Client for ActiveMQ Artemis. Just recently I managed to release v1.0.0. You can grab it from here. It’s fully asynchronous, allows you to create/configure queues via code (in a similar way as RabbitMQ.Client does), has the auto-recovery feature, transactions support, and much more. :slight_smile:

@m-monaghan If you decide to go with NMS.AMQP be mindful that NMS API is synchronous, pretending that it is not, may lead to unexpected results (like the acknowledgment of unconsumed messages, etc.). The fact that the top-level API is synchronous whereas the underlying driver is asynchronous may have other repercussions, that may result in, for instance, thread pool exhaustion. There is quite a lot of GetAwaiter().GetResult() s there.

Is there any update on this thread? I notice that NSB still doesn’t support Amazon MQ and is that because it doesn’t need to (are they competing products?) or is this in the pipeline for future development?

Hi Steve!

We do support running RabbitMQ on Amazon MQ would that be an option or are you targeting ActiveMQ?

Do note that AWS only support broker version 3.9.16 at this stage and as of NServiceBus.RabbitMQ Version 7.0.0 we do require the broker to be at least 3.10.0 for the NServiceBus delayed delivery support to be safe to use. I would expect AWS to add 3.10.0 support shortly. (In the meantime you can use NServiceBus.RabbitMQ v6.X)

Cheers,

Andreas

Ah, perhaps I’ve misunderstood something. So we would create Amazon MQ for Rabbit MQ and then connect to it using NSB Rabbit MQ transport?
(No, we won’t be targeting ActiveMQ)

That is correct, once you create a new broker in Amazon MQ you get to choose if you want it to be RabbitMQ or ActiveMQ. Then you just configure our RabbitMQ transport to connect to it.

Cheers,

Andreas

1 Like