SQS "Fair Queues" #56382
Unanswered
lukewaite-intouch
asked this question in
Ideas
SQS "Fair Queues"
#56382
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Overview
SQS has announced a new feature called "fair queues" for multi-tenant workloads.
https://aws.amazon.com/about-aws/whats-new/2025/07/amazon-sqs-introduces-fair/
https://aws.amazon.com/blogs/compute/building-resilient-multi-tenant-systems-with-amazon-sqs-fair-queues/
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fair-queues.html
How To Support
AWS' latest documentation now recommends "that you include a MessageGroupId in all messages when using fair queues".
Currently, SqsQueue->pushRaw is responsible for submitting the message payload:
So this method would need to being passing through a customizable string, that presumably some trait on a Job might set. eg:
It could obviously just be passed into the splat on options, but for clarity's sake I break it out above.
There is a bit of prior work on handling MessageGroupId in the community, as this property was first introduced in support of SQS FIFO Queues, and there is a community SQS Fifo Queue project.
https://github.com/shiftonelabs/laravel-sqs-fifo-queue?tab=readme-ov-file#message-groups
Initially, I had thought that perhaps the
$queue
concept in the queue, could be re-used since I did not believe it was supported for SQS, but that appears to have changed and it is now used to an extend in support of prefix based queues.Ideally, I think given the AWS recommendation "that you include a MessageGroupId in all messages when using fair queues", I think this should be in the framework itself, rather than built out as another standalone plugin. If un-configured a string of
default
could be used, which would be a non-breaking change, assuming we can find a non-breaking way to expose the behaviour that is acceptable to maintainers.Beta Was this translation helpful? Give feedback.
All reactions