Skip to content

feat: bump sqs producer and consumer which uses aws sdk v3 under the hood#9152

Open
kevin9foong wants to merge 1 commit intodevelopfrom
feat/bump-sqs-consumer-producer
Open

feat: bump sqs producer and consumer which uses aws sdk v3 under the hood#9152
kevin9foong wants to merge 1 commit intodevelopfrom
feat/bump-sqs-consumer-producer

Conversation

@kevin9foong
Copy link
Copy Markdown
Contributor

@kevin9foong kevin9foong commented Feb 26, 2026

Problem

Closes dep bumps for sqs-consumer and sqs-producer

Note that the updates use the new AWS SDK v3 from the previous AWS SDK v2 which is EOL since Sept 2025.

Solution

Since keep alive is now default enabled for AWS SDK v3, we can safely remove the sqs argument which aims to keep the SQS session alive previously recommended in v5.7.0 of sqs-consumer.

Breaking Changes

No - this PR is backwards compatible

Tests

Webhook can be received:

Webhook with retries can be received:

  • Submit a form with webhook with retries enabled, set an invalid endpoint.
  • Update the endpoint to a valid https://webhook.site/ and assert it can be received.

@kevin9foong kevin9foong self-assigned this Feb 26, 2026
@kevin9foong kevin9foong requested a review from a team as a code owner February 26, 2026 14:25
@kevin9foong kevin9foong changed the title feat: bump sqs producer and consumer, use aws sdkv3 feat: bump sqs producer and consumer which uses aws sdk v3 under the hood Feb 26, 2026
export const createWebhookQueueHandler =
(producer: WebhookProducer) =>
async (sqsMessage: aws.SQS.Message): Promise<void> => {
async (sqsMessage: Message): Promise<Message | undefined> => {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: Instead of returning resolved promise to remove the message from queue and acknowledge, the new sqs-consumer expects the original message to be returned.

queueUrl,
region: config.aws.region,
handleMessage: createWebhookQueueHandler(producer),
// By default, the default Node.js HTTP/HTTPS SQS agent
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note: can be safely removed, since the new sqs-consumer uses AWS SDK v3 under the hood, which HTTP keep-alive is on by default.

@datadog-opengovsg

This comment has been minimized.

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.

1 participant