This is a helper module for SQS handler, It provides configurable retry and error handling features for the handler, let devs focus on the logic of processing message.
Enable a message handler to do the following automatically
- process batched messages in parallel
- set retry interval
- delete message on success
- throw error on fail
- return messageIds of failed messages to trigger a partial retry
To include the @nesn/commons-sqs-tools
module in your project, you can install it using npm:
npm install @nesn/commons-sqs-tools
import { batchedMessageHandler } from '@nesn/commons-sqs-tools';
import { batchedMessageHandler } from '@nesn/commons-sqs-tools';
const mainHandler = (sqsEvent) => {
// main logic done in here
};
export const handler = batchedMessageHandler({
handler: mainHandler,
retryStages: [
{ attempts: 3, interval: 30 }, // unit: second
{ attempts: 2, interval: 60 },
{ attempts: 1, interval: 120 }
],
clientConfig: {
credentials: {}, // overwrite credential if needed
endpoint: '' // useful when local debug, local sqs endpoint can be set in here
}
});
The @nesn/commons-sqs-tools
module provides a default retry and error handling features for your handler. You can extend or modify it to suit your project's needs.
Contributions to the @nesn/commons-sqs-tools
module are welcome. If you encounter any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request.
The @nesn/commons-sqs-tools
module is released under the MIT License. You can find the full license text in the module's package.json
file.
Please note that this readme is provided as an example and might need adjustments based on your specific project and documentation guidelines.