Introduction
Some parts of the Laravel Queue system rely on a uuid field which, in the case of the Laravel AWS SQS driver, is supposed to be included in the Body field of the AWS SQS data.
In the Laravel Queue system, this UUID is generated by Laravel when the job is created and included in the Body field of the message sent to AWS SQS.
In the case of micro-bus however, the AWS SQS Body is generated by AWS SNS and does not include the uuid field.
This can cause issues, for example with the database-uuids failed jobs driver of Laravel, that cannot store in the failed_jobs table the micro-bus jobs that have failed because they do not include the UUID.
Content of this Pull Request
This Pull Request adds to micro-bus:
Publisher: The generation of a job UUID (just like Laravel Queue does) and the inclusion of this UUID in the MessageAttributes of the AWS SNS topic
Subscriber: The copy of the UUID from the MessageAttributes to a uuid field within the Body of the data received from AWS SQS
Additionally, this Pull Request fixes a bug on the PublisherFifo facade, that prevented this facade from working.
Introduction Some parts of the Laravel Queue system rely on a
uuid
field which, in the case of the Laravel AWS SQS driver, is supposed to be included in theBody
field of the AWS SQS data. In the Laravel Queue system, this UUID is generated by Laravel when the job is created and included in theBody
field of the message sent to AWS SQS. In the case of micro-bus however, the AWS SQSBody
is generated by AWS SNS and does not include theuuid
field.This can cause issues, for example with the
database-uuids
failed jobs driver of Laravel, that cannot store in thefailed_jobs
table the micro-bus jobs that have failed because they do not include the UUID.Content of this Pull Request This Pull Request adds to micro-bus:
MessageAttributes
of the AWS SNS topicMessageAttributes
to auuid
field within theBody
of the data received from AWS SQSAdditionally, this Pull Request fixes a bug on the
PublisherFifo
facade, that prevented this facade from working.Environment Tested on Laravel 9.