Skip to content

Comments

Add system control and reply queues to Amazon SQS transport#2175

Merged
jeremydmiller merged 2 commits intomainfrom
sqs-control-and-reply-queues
Feb 13, 2026
Merged

Add system control and reply queues to Amazon SQS transport#2175
jeremydmiller merged 2 commits intomainfrom
sqs-control-and-reply-queues

Conversation

@jeremydmiller
Copy link
Member

Summary

  • Adds opt-in system queues (response and control) to the Amazon SQS transport, enabling request/reply mechanics (IMessageBus.InvokeAsync<T>()) and inter-node control communication
  • Uses real SQS queues with tag-based orphan cleanup — queues are tagged with wolverine:last-active timestamps, a background timer refreshes tags every 2 minutes, and stale queues are cleaned up on startup
  • Queue names are lowercased to prevent case mismatch between SQS (case-sensitive names) and URI normalization (which lowercases the host portion)
  • Documents the new EnableSystemQueues(), EnableWolverineControlQueues(), and SystemQueuesAreEnabled() configuration methods

API

opts.UseAmazonSqsTransport()
    .AutoProvision()
    .EnableSystemQueues();           // enables request/reply
    // .EnableWolverineControlQueues(); // enables inter-node control (implies EnableSystemQueues)
    // .SystemQueuesAreEnabled(false);  // explicitly disable

Test plan

  • All 19 buffered compliance tests pass (including can_request_reply, can_send_and_wait, explicit_respond_to_sender, requested_response)
  • All 19 inline compliance tests pass
  • All 19 durable compliance tests pass
  • Full SQS test suite: 143 passed, 6 skipped (pre-existing), 0 failed

Closes #994

🤖 Generated with Claude Code

jeremydmiller and others added 2 commits February 12, 2026 18:32
Implement opt-in system queues for the SQS transport following the
RabbitMQ and Azure Service Bus patterns. Creates per-node response
queues for request/reply messaging and control queues for inter-node
communication. Uses real SQS queues with tag-based orphan cleanup
(wolverine:last-active timestamp) and a background keep-alive timer.
Queue names are lowercased to prevent case mismatch between SQS
(case-sensitive) and URI normalization (lowercases host portion).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove the "no request/reply support" warning from SQS docs and add
sections documenting EnableSystemQueues(), EnableWolverineControlQueues(),
SystemQueuesAreEnabled(), and the tag-based orphan cleanup behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Utilize SQS temporary queues for request/reply and system control queues

1 participant