smallrye-reactive-messaging icon indicating copy to clipboard operation
smallrye-reactive-messaging copied to clipboard

Configuration of SQS outgoing channel without queue name

Open lschmierer opened this issue 7 months ago • 2 comments

Hi, I am using SqsOutboundMetadata.builder().queueUrl(sqsQueueUrl) to define the target queue based on the data at runtime. Therefor I do not want to set a queue name in the outgoing channel configuration.

Because the queue name defaults to the channel name, I receive error SRMSG19400: Failed to retrieve AWS Sqs queue url (this queue does not exist).

However, there is a workaround by defining a "fake" url:

mp:
  messaging:
    outgoing:
      my-channel:
        connector: smallrye-rabbitmq
        queue:
          url: dummy/url

I am not quite sure how this would ideally look like, because the default behaviour seems sensible.

  • maybe the lookup from queue name to queue url could be deferred until the first message is sent or
  • add a config property to explicitly set the queue name and queue url to null?

lschmierer avatar May 23 '25 19:05 lschmierer

Hi, indeed, this use case wasn't taken into account.

I think we'd need two things: 1/ for outgoing channels, if the queue URL weren't found, it should log that at startup but don't fail. 2/ for outgoing channels, if the provided queue URL were a special value (an empty string perhaps) we would skip the queue URL validation.

For incoming channels nothing should change.

How does it sound?

ozangunalp avatar Jun 02 '25 11:06 ozangunalp

Seems reasonable!

if the queue URL weren't found, it should log that at startup but don't fail.

It already works though with an invalid url as I put into the initial description. But I do not remember if sth. fatal was logged or what the health checks reported on initial validation

lschmierer avatar Jun 02 '25 14:06 lschmierer