⛓️AWS SQS FIFO

Starting with soketi 0.30, you may now use AWS's SQS FIFO queues to process webhooks and other background tasks.

Creating the queue

The driver works strictly with the High-Throughput FIFO Queue mode. Below you will find an example command line to create a FIFO Queue for soketi using the AWS CLI.

The recommended values can be adjusted according to your needs, such as MessageRetentionPeriod, but these are optimal for this soketi's use case.

aws sqs create-queue --queue-name test.fifo \
  --attributes='{
    "FifoQueue": "true",
    "ContentBasedDeduplication": "true",
    "DeduplicationScope": "messageGroup",
    "FifoThroughputLimit": "perMessageGroupId",
    "MessageRetentionPeriod": "3600",
    "ReceiveMessageWaitTimeSeconds": "1",
    "VisibilityTimeout": "5"
  }'

Keep in mind that the DeduplicationScope and FifoThroughputLimit should be set as below since the queues may be processed on an app ID and queue type basis for extreme throughput. The ContentBasedDeduplication should be true.

Caveats

IAM Permissions

Make sure that when setting the IAM policies for the authentication user or instance role, you will include the following IAM permissions:

  • sqs:ReceiveMessage

  • sqs:SendMessage

Visibility Timeout too low

Since the webhooks are used for now for sending HTTP requests or Lambda invocations, make sure that the total process time is lower than the Visibility Timeout duration, otherwise, another consumer can claim the message after the duration.

Environment Variables

Last updated