@message-queue-toolkit/sqs 22.3.0 → 22.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2615 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/sqs/AbstractSqsConsumer.d.ts +66 -2
- package/dist/sqs/AbstractSqsConsumer.js +274 -21
- package/dist/sqs/AbstractSqsConsumer.js.map +1 -1
- package/dist/sqs/AbstractSqsPublisher.d.ts +38 -2
- package/dist/sqs/AbstractSqsPublisher.js +44 -1
- package/dist/sqs/AbstractSqsPublisher.js.map +1 -1
- package/dist/sqs/AbstractSqsService.d.ts +10 -0
- package/dist/sqs/AbstractSqsService.js +3 -1
- package/dist/sqs/AbstractSqsService.js.map +1 -1
- package/dist/utils/eventBridgeSchemaBuilder.d.ts +85 -0
- package/dist/utils/eventBridgeSchemaBuilder.js +81 -0
- package/dist/utils/eventBridgeSchemaBuilder.js.map +1 -0
- package/dist/utils/sqsAttributeUtils.d.ts +1 -1
- package/dist/utils/sqsAttributeUtils.js +1 -1
- package/dist/utils/sqsInitter.d.ts +1 -1
- package/dist/utils/sqsInitter.js +7 -3
- package/dist/utils/sqsInitter.js.map +1 -1
- package/dist/utils/sqsUtils.d.ts +19 -1
- package/dist/utils/sqsUtils.js +62 -2
- package/dist/utils/sqsUtils.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -2,12 +2,13 @@ export { SqsConsumerErrorResolver } from './errors/SqsConsumerErrorResolver.ts';
|
|
|
2
2
|
export { FakeConsumerErrorResolver } from './fakes/FakeConsumerErrorResolver.ts';
|
|
3
3
|
export type { SQSConsumerDependencies, SQSConsumerOptions } from './sqs/AbstractSqsConsumer.ts';
|
|
4
4
|
export { AbstractSqsConsumer } from './sqs/AbstractSqsConsumer.ts';
|
|
5
|
-
export type { SQSMessageOptions } from './sqs/AbstractSqsPublisher.ts';
|
|
5
|
+
export type { SQSMessageOptions, SQSPublisherOptions } from './sqs/AbstractSqsPublisher.ts';
|
|
6
6
|
export { AbstractSqsPublisher, OFFLOADED_PAYLOAD_SIZE_ATTRIBUTE, } from './sqs/AbstractSqsPublisher.ts';
|
|
7
|
-
export { type ExtraSQSCreationParams, SQS_MESSAGE_MAX_SIZE, SQS_RESOURCE_ANY, SQS_RESOURCE_CURRENT_QUEUE, type SQSCreationConfig, type SQSDependencies, type SQSPolicyConfig, type SQSQueueLocatorType, } from './sqs/AbstractSqsService.ts';
|
|
7
|
+
export { type ExtraSQSCreationParams, SQS_MESSAGE_MAX_SIZE, SQS_RESOURCE_ANY, SQS_RESOURCE_CURRENT_QUEUE, type SQSCreationConfig, type SQSDependencies, type SQSOptions, type SQSPolicyConfig, type SQSQueueConfig, type SQSQueueLocatorType, } from './sqs/AbstractSqsService.ts';
|
|
8
8
|
export type { CommonMessage, SQSMessage } from './types/MessageTypes.ts';
|
|
9
|
+
export { createEventBridgeSchema, createEventBridgeSchemas, type EventBridgeDetail, } from './utils/eventBridgeSchemaBuilder.ts';
|
|
9
10
|
export { resolveOutgoingMessageAttributes } from './utils/messageUtils.ts';
|
|
10
11
|
export { generateQueuePublishForTopicPolicy, generateWildcardSnsArn, generateWildcardSqsArn, } from './utils/sqsAttributeUtils.ts';
|
|
11
12
|
export { deleteSqs, updateQueueAttributes } from './utils/sqsInitter.ts';
|
|
12
13
|
export { deserializeSQSMessage } from './utils/sqsMessageDeserializer.ts';
|
|
13
|
-
export { assertQueue, calculateOutgoingMessageSize, deleteQueue, getQueueAttributes, getQueueUrl, resolveQueueUrlFromLocatorConfig, } from './utils/sqsUtils.ts';
|
|
14
|
+
export { assertQueue, calculateOutgoingMessageSize, deleteQueue, detectFifoQueue, getQueueAttributes, getQueueUrl, isFifoQueueName, resolveQueueUrlFromLocatorConfig, validateFifoQueueConfiguration, validateFifoQueueName, } from './utils/sqsUtils.ts';
|
package/dist/index.js
CHANGED
|
@@ -3,9 +3,10 @@ export { FakeConsumerErrorResolver } from "./fakes/FakeConsumerErrorResolver.js"
|
|
|
3
3
|
export { AbstractSqsConsumer } from "./sqs/AbstractSqsConsumer.js";
|
|
4
4
|
export { AbstractSqsPublisher, OFFLOADED_PAYLOAD_SIZE_ATTRIBUTE, } from "./sqs/AbstractSqsPublisher.js";
|
|
5
5
|
export { SQS_MESSAGE_MAX_SIZE, SQS_RESOURCE_ANY, SQS_RESOURCE_CURRENT_QUEUE, } from "./sqs/AbstractSqsService.js";
|
|
6
|
+
export { createEventBridgeSchema, createEventBridgeSchemas, } from "./utils/eventBridgeSchemaBuilder.js";
|
|
6
7
|
export { resolveOutgoingMessageAttributes } from "./utils/messageUtils.js";
|
|
7
8
|
export { generateQueuePublishForTopicPolicy, generateWildcardSnsArn, generateWildcardSqsArn, } from "./utils/sqsAttributeUtils.js";
|
|
8
9
|
export { deleteSqs, updateQueueAttributes } from "./utils/sqsInitter.js";
|
|
9
10
|
export { deserializeSQSMessage } from "./utils/sqsMessageDeserializer.js";
|
|
10
|
-
export { assertQueue, calculateOutgoingMessageSize, deleteQueue, getQueueAttributes, getQueueUrl, resolveQueueUrlFromLocatorConfig, } from "./utils/sqsUtils.js";
|
|
11
|
+
export { assertQueue, calculateOutgoingMessageSize, deleteQueue, detectFifoQueue, getQueueAttributes, getQueueUrl, isFifoQueueName, resolveQueueUrlFromLocatorConfig, validateFifoQueueConfiguration, validateFifoQueueName, } from "./utils/sqsUtils.js";
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAGlE,OAAO,EACL,oBAAoB,EACpB,gCAAgC,GACjC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAEL,oBAAoB,EACpB,gBAAgB,EAChB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAGlE,OAAO,EACL,oBAAoB,EACpB,gCAAgC,GACjC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAEL,oBAAoB,EACpB,gBAAgB,EAChB,0BAA0B,GAO3B,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,EACL,kCAAkC,EAClC,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EACL,WAAW,EACX,4BAA4B,EAC5B,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,gCAAgC,EAChC,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,qBAAqB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Either, ErrorResolver } from '@lokalise/node-core';
|
|
2
2
|
import { type BarrierResult, type MessageSchemaContainer, type PreHandlingOutputs, type Prehandler, type QueueConsumer, type QueueConsumerDependencies, type QueueConsumerOptions } from '@message-queue-toolkit/core';
|
|
3
3
|
import type { ConsumerOptions } from 'sqs-consumer';
|
|
4
|
+
import type { ZodSchema } from 'zod/v4';
|
|
4
5
|
import type { SQSMessage } from '../types/MessageTypes.ts';
|
|
5
6
|
import type { SQSCreationConfig, SQSDependencies, SQSQueueLocatorType } from './AbstractSqsService.ts';
|
|
6
7
|
import { AbstractSqsService } from './AbstractSqsService.ts';
|
|
@@ -10,7 +11,7 @@ type SQSDeadLetterQueueOptions = {
|
|
|
10
11
|
};
|
|
11
12
|
};
|
|
12
13
|
export type SQSConsumerDependencies = SQSDependencies & QueueConsumerDependencies;
|
|
13
|
-
|
|
14
|
+
type SQSConsumerCommonOptions<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, QueueLocatorType extends object = SQSQueueLocatorType> = QueueConsumerOptions<CreationConfigType, QueueLocatorType, SQSDeadLetterQueueOptions, MessagePayloadSchemas, ExecutionContext, PrehandlerOutput, SQSCreationConfig, SQSQueueLocatorType> & {
|
|
14
15
|
/**
|
|
15
16
|
* Omitting properties which will be set internally ins this class
|
|
16
17
|
* `visibilityTimeout` is also omitted to avoid conflicts with queue config
|
|
@@ -18,6 +19,34 @@ export type SQSConsumerOptions<MessagePayloadSchemas extends object, ExecutionCo
|
|
|
18
19
|
consumerOverrides?: Omit<ConsumerOptions, 'sqs' | 'queueUrl' | 'handler' | 'handleMessageBatch' | 'visibilityTimeout' | 'messageAttributeNames' | 'messageSystemAttributeNames' | 'attributeNames'>;
|
|
19
20
|
concurrentConsumersAmount?: number;
|
|
20
21
|
};
|
|
22
|
+
type SQSConsumerFifoOptions = {
|
|
23
|
+
fifoQueue: true;
|
|
24
|
+
/**
|
|
25
|
+
* Interval in milliseconds between barrier re-checks during sleep period (FIFO queues only).
|
|
26
|
+
* FIFO queues sleep and recheck barriers instead of republishing messages to preserve order.
|
|
27
|
+
* The consumer will sleep and recheck for up to maxRetryDuration before moving to DLQ.
|
|
28
|
+
* Default: 5000 (5 seconds)
|
|
29
|
+
*/
|
|
30
|
+
barrierSleepCheckIntervalInMsecs?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Interval in milliseconds between visibility timeout extensions during barrier sleep (FIFO queues only).
|
|
33
|
+
* Extensions happen BEFORE each sleep chunk to prevent message from becoming visible during long waits.
|
|
34
|
+
* Should be less than the VisibilityTimeout to prevent message reclaim.
|
|
35
|
+
* Default: 30000 (30 seconds)
|
|
36
|
+
*/
|
|
37
|
+
barrierVisibilityExtensionIntervalInMsecs?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Duration in seconds to extend visibility timeout to during barrier sleep (FIFO queues only).
|
|
40
|
+
* Each extension sets visibility to this value from NOW (not cumulative).
|
|
41
|
+
* Should be significantly longer than barrierVisibilityExtensionIntervalInMsecs for safety buffer.
|
|
42
|
+
* Default: 90 (90 seconds, providing 60s buffer with 30s check interval)
|
|
43
|
+
*/
|
|
44
|
+
barrierVisibilityTimeoutInSeconds?: number;
|
|
45
|
+
};
|
|
46
|
+
type SQSConsumerStandardQueueOptions = {
|
|
47
|
+
fifoQueue?: false;
|
|
48
|
+
};
|
|
49
|
+
export type SQSConsumerOptions<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, QueueLocatorType extends object = SQSQueueLocatorType> = (SQSConsumerCommonOptions<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput, CreationConfigType, QueueLocatorType> & SQSConsumerFifoOptions) | (SQSConsumerCommonOptions<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput, CreationConfigType, QueueLocatorType> & SQSConsumerStandardQueueOptions);
|
|
21
50
|
export declare abstract class AbstractSqsConsumer<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput = undefined, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, QueueLocatorType extends object = SQSQueueLocatorType, ConsumerOptionsType extends SQSConsumerOptions<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType, QueueLocatorType> = SQSConsumerOptions<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType, QueueLocatorType>> extends AbstractSqsService<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, SQSConsumerDependencies, ExecutionContext, PrehandlerOutput> implements QueueConsumer {
|
|
22
51
|
private consumers;
|
|
23
52
|
private readonly concurrentConsumersAmount;
|
|
@@ -27,6 +56,10 @@ export declare abstract class AbstractSqsConsumer<MessagePayloadType extends obj
|
|
|
27
56
|
private readonly deadLetterQueueOptions?;
|
|
28
57
|
private readonly isDeduplicationEnabled;
|
|
29
58
|
private maxRetryDuration;
|
|
59
|
+
private cachedContentBasedDeduplication?;
|
|
60
|
+
private readonly barrierSleepCheckIntervalInMsecs;
|
|
61
|
+
private readonly barrierVisibilityExtensionIntervalInMsecs;
|
|
62
|
+
private readonly barrierVisibilityTimeoutInSeconds;
|
|
30
63
|
protected deadLetterQueueUrl?: string;
|
|
31
64
|
protected readonly errorResolver: ErrorResolver;
|
|
32
65
|
protected readonly executionContext: ExecutionContext;
|
|
@@ -38,12 +71,43 @@ export declare abstract class AbstractSqsConsumer<MessagePayloadType extends obj
|
|
|
38
71
|
close(abort?: boolean): Promise<void>;
|
|
39
72
|
private createConsumer;
|
|
40
73
|
private handleRetryLater;
|
|
74
|
+
/**
|
|
75
|
+
* Sleep and periodically recheck barrier for FIFO queues.
|
|
76
|
+
* This method implements the barrier sleep mechanism to avoid unnecessary AWS retries.
|
|
77
|
+
*/
|
|
78
|
+
private sleepAndRecheckBarrier;
|
|
79
|
+
/**
|
|
80
|
+
* Sleep for the specified duration while optionally extending visibility timeout to prevent message reclaim.
|
|
81
|
+
* AWS SQS will reclaim messages if visibility timeout expires during processing.
|
|
82
|
+
*
|
|
83
|
+
* Visibility extension strategy:
|
|
84
|
+
* - If heartbeatInterval is set and <= extension interval: rely on sqs-consumer's automatic extension
|
|
85
|
+
* - Otherwise: explicitly extend at configured intervals during sleep
|
|
86
|
+
*
|
|
87
|
+
* This prevents redundant API calls when heartbeatInterval already provides sufficient coverage.
|
|
88
|
+
*/
|
|
89
|
+
private sleepWithVisibilityTimeoutExtension;
|
|
90
|
+
/**
|
|
91
|
+
* Determines whether to use async or sync path for building retry message params.
|
|
92
|
+
* For FIFO queues with locatorConfig, we need to fetch ContentBasedDeduplication from SQS.
|
|
93
|
+
*/
|
|
94
|
+
private buildRetryMessageParamsWithDeduplicationCheck;
|
|
95
|
+
/**
|
|
96
|
+
* Builds SendMessageCommand parameters for retry, handling FIFO vs standard queues (synchronous)
|
|
97
|
+
*/
|
|
98
|
+
private buildRetryMessageParams;
|
|
99
|
+
/**
|
|
100
|
+
* Builds FIFO retry message params when ContentBasedDeduplication attribute needs to be fetched from SQS.
|
|
101
|
+
* This is only needed when using locatorConfig (queue not created by this service).
|
|
102
|
+
* Caches the ContentBasedDeduplication value after first fetch to avoid repeated API calls.
|
|
103
|
+
*/
|
|
104
|
+
private buildFifoRetryMessageParamsAsync;
|
|
41
105
|
private stopExistingConsumers;
|
|
42
106
|
private internalProcessMessage;
|
|
43
107
|
protected processMessage(message: MessagePayloadType, messageType: string, preHandlingOutputs: PreHandlingOutputs<PrehandlerOutput, any>): Promise<Either<'retryLater', 'success'>>;
|
|
44
108
|
protected processPrehandlers(message: MessagePayloadType, messageType: string): Promise<PrehandlerOutput>;
|
|
45
109
|
protected preHandlerBarrier<BarrierOutput>(message: MessagePayloadType, messageType: string, preHandlerOutput: PrehandlerOutput): Promise<BarrierResult<BarrierOutput>>;
|
|
46
|
-
protected resolveSchema(message: MessagePayloadType): Either<Error,
|
|
110
|
+
protected resolveSchema(message: MessagePayloadType): Either<Error, ZodSchema<MessagePayloadType>>;
|
|
47
111
|
protected resolveNextFunction(preHandlers: Prehandler<MessagePayloadType, ExecutionContext, unknown>[], message: MessagePayloadType, index: number, preHandlerOutput: PrehandlerOutput, resolve: (value: PrehandlerOutput | PromiseLike<PrehandlerOutput>) => void, reject: (err: Error) => void): (preHandlerResult: import("@message-queue-toolkit/core").PrehandlerResult) => void;
|
|
48
112
|
protected resolveMessageLog(message: MessagePayloadType, messageType: string): unknown;
|
|
49
113
|
protected resolveMessage(message: SQSMessage): Either<import("@message-queue-toolkit/core").MessageInvalidFormatError | import("@message-queue-toolkit/core").MessageValidationError, import("@message-queue-toolkit/core").ResolvedMessage>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SendMessageCommand, SetQueueAttributesCommand } from '@aws-sdk/client-sqs';
|
|
1
|
+
import { ChangeMessageVisibilityCommand, SendMessageCommand, SetQueueAttributesCommand, } from '@aws-sdk/client-sqs';
|
|
2
2
|
import { DeduplicationRequesterEnum, HandlerContainer, isMessageError, noopReleasableLock, parseMessage, } from '@message-queue-toolkit/core';
|
|
3
3
|
import { Consumer } from 'sqs-consumer';
|
|
4
4
|
import { hasOffloadedPayload } from "../utils/messageUtils.js";
|
|
@@ -11,6 +11,9 @@ const ABORT_EARLY_EITHER = {
|
|
|
11
11
|
error: 'abort',
|
|
12
12
|
};
|
|
13
13
|
const DEFAULT_MAX_RETRY_DURATION = 4 * 24 * 60 * 60; // 4 days in seconds
|
|
14
|
+
const DEFAULT_BARRIER_SLEEP_CHECK_INTERVAL_IN_MSECS = 5000; // 5 seconds in milliseconds
|
|
15
|
+
const DEFAULT_BARRIER_VISIBILITY_EXTENSION_INTERVAL_IN_MSECS = 30000; // 30 seconds in milliseconds
|
|
16
|
+
const DEFAULT_BARRIER_VISIBILITY_TIMEOUT_IN_SECONDS = 90; // 90 seconds
|
|
14
17
|
export class AbstractSqsConsumer extends AbstractSqsService {
|
|
15
18
|
consumers;
|
|
16
19
|
concurrentConsumersAmount;
|
|
@@ -20,6 +23,10 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
20
23
|
deadLetterQueueOptions;
|
|
21
24
|
isDeduplicationEnabled;
|
|
22
25
|
maxRetryDuration;
|
|
26
|
+
cachedContentBasedDeduplication;
|
|
27
|
+
barrierSleepCheckIntervalInMsecs;
|
|
28
|
+
barrierVisibilityExtensionIntervalInMsecs;
|
|
29
|
+
barrierVisibilityTimeoutInSeconds;
|
|
23
30
|
deadLetterQueueUrl;
|
|
24
31
|
errorResolver;
|
|
25
32
|
executionContext;
|
|
@@ -31,6 +38,15 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
31
38
|
this.consumerOptionsOverride = options.consumerOverrides ?? {};
|
|
32
39
|
this.deadLetterQueueOptions = options.deadLetterQueue;
|
|
33
40
|
this.maxRetryDuration = options.maxRetryDuration ?? DEFAULT_MAX_RETRY_DURATION;
|
|
41
|
+
// Access FIFO-specific options (only available when fifoQueue: true)
|
|
42
|
+
const fifoOptions = options;
|
|
43
|
+
this.barrierSleepCheckIntervalInMsecs =
|
|
44
|
+
fifoOptions.barrierSleepCheckIntervalInMsecs ?? DEFAULT_BARRIER_SLEEP_CHECK_INTERVAL_IN_MSECS;
|
|
45
|
+
this.barrierVisibilityExtensionIntervalInMsecs =
|
|
46
|
+
fifoOptions.barrierVisibilityExtensionIntervalInMsecs ??
|
|
47
|
+
DEFAULT_BARRIER_VISIBILITY_EXTENSION_INTERVAL_IN_MSECS;
|
|
48
|
+
this.barrierVisibilityTimeoutInSeconds =
|
|
49
|
+
fifoOptions.barrierVisibilityTimeoutInSeconds ?? DEFAULT_BARRIER_VISIBILITY_TIMEOUT_IN_SECONDS;
|
|
34
50
|
this.executionContext = executionContext;
|
|
35
51
|
this.consumers = [];
|
|
36
52
|
this.concurrentConsumersAmount = options.concurrentConsumersAmount ?? 1;
|
|
@@ -52,7 +68,8 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
52
68
|
if (deletionConfig && creationConfig) {
|
|
53
69
|
await deleteSqs(this.sqsClient, deletionConfig, creationConfig);
|
|
54
70
|
}
|
|
55
|
-
|
|
71
|
+
// DLQ should match the type of the source queue (FIFO DLQ for FIFO source queue)
|
|
72
|
+
const result = await initSqs(this.sqsClient, locatorConfig, creationConfig, this.isFifoQueue);
|
|
56
73
|
await this.sqsClient.send(new SetQueueAttributesCommand({
|
|
57
74
|
QueueUrl: this.queueUrl,
|
|
58
75
|
Attributes: {
|
|
@@ -66,7 +83,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
66
83
|
}
|
|
67
84
|
async start() {
|
|
68
85
|
await this.init();
|
|
69
|
-
this.stopExistingConsumers();
|
|
86
|
+
await this.stopExistingConsumers();
|
|
70
87
|
const visibilityTimeout = await this.getQueueVisibilityTimeout();
|
|
71
88
|
this.consumers = Array.from({ length: this.concurrentConsumersAmount }, () => this.createConsumer({ visibilityTimeout }));
|
|
72
89
|
for (const consumer of this.consumers) {
|
|
@@ -78,7 +95,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
78
95
|
}
|
|
79
96
|
async close(abort) {
|
|
80
97
|
await super.close();
|
|
81
|
-
this.stopExistingConsumers(abort ?? false);
|
|
98
|
+
await this.stopExistingConsumers(abort ?? false);
|
|
82
99
|
}
|
|
83
100
|
createConsumer(options) {
|
|
84
101
|
return Consumer.create({
|
|
@@ -86,7 +103,13 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
86
103
|
queueUrl: this.queueUrl,
|
|
87
104
|
visibilityTimeout: options.visibilityTimeout,
|
|
88
105
|
messageAttributeNames: [`${PAYLOAD_OFFLOADING_ATTRIBUTE_PREFIX}*`],
|
|
106
|
+
// For FIFO queues, request system attributes needed for retry (MessageGroupId and MessageDeduplicationId)
|
|
107
|
+
messageSystemAttributeNames: this.isFifoQueue
|
|
108
|
+
? ['MessageGroupId', 'MessageDeduplicationId']
|
|
109
|
+
: undefined,
|
|
89
110
|
...this.consumerOptionsOverride,
|
|
111
|
+
// Suppress FIFO warning (set after overrides to ensure it's not overridden)
|
|
112
|
+
suppressFifoWarning: this.isFifoQueue ? true : undefined,
|
|
90
113
|
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: fixme
|
|
91
114
|
handleMessage: async (message) => {
|
|
92
115
|
if (message === null)
|
|
@@ -124,7 +147,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
124
147
|
// We don't want to discard message yet as we don't know if the other consumer will be able to process it successfully.
|
|
125
148
|
// We're re-queueing the message, so it can be processed later.
|
|
126
149
|
if (acquireLockResult.error) {
|
|
127
|
-
await this.handleRetryLater(message, originalMessage, parsedMessage, messageProcessingStartTimestamp);
|
|
150
|
+
await this.handleRetryLater(message, originalMessage, parsedMessage, messageProcessingStartTimestamp, false);
|
|
128
151
|
return message;
|
|
129
152
|
}
|
|
130
153
|
// While the consumer was waiting for a lock to be acquired, the message might have been processed
|
|
@@ -175,7 +198,7 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
175
198
|
}
|
|
176
199
|
if (result.error === 'retryLater') {
|
|
177
200
|
await acquireLockResult.result?.release();
|
|
178
|
-
await this.handleRetryLater(message, originalMessage, parsedMessage, messageProcessingStartTimestamp);
|
|
201
|
+
await this.handleRetryLater(message, originalMessage, parsedMessage, messageProcessingStartTimestamp, true);
|
|
179
202
|
return message;
|
|
180
203
|
}
|
|
181
204
|
await acquireLockResult.result?.release();
|
|
@@ -189,13 +212,43 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
189
212
|
},
|
|
190
213
|
});
|
|
191
214
|
}
|
|
192
|
-
async handleRetryLater(message, originalMessage, parsedMessage, messageProcessingStartTimestamp) {
|
|
215
|
+
async handleRetryLater(message, originalMessage, parsedMessage, messageProcessingStartTimestamp, isHandlerRetry = true) {
|
|
216
|
+
/**
|
|
217
|
+
* For FIFO queues, we use a special retry approach to preserve message ordering.
|
|
218
|
+
* For handler/barrier retries: sleep and periodically re-check until barrier passes or max sleep exceeded
|
|
219
|
+
* For lock failures: throw error immediately to trigger AWS retry
|
|
220
|
+
*/
|
|
221
|
+
if (this.isFifoQueue) {
|
|
222
|
+
// Check if retry is still within the allowed duration
|
|
223
|
+
if (this.shouldBeRetried(originalMessage, this.maxRetryDuration)) {
|
|
224
|
+
// Only use sleep-and-recheck for handler/barrier retries, not lock failures
|
|
225
|
+
if (isHandlerRetry) {
|
|
226
|
+
await this.sleepAndRecheckBarrier(message, originalMessage, parsedMessage, messageProcessingStartTimestamp);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
// For lock failures, throw error immediately
|
|
230
|
+
this.handleMessageProcessed({
|
|
231
|
+
message: parsedMessage,
|
|
232
|
+
processingResult: { status: 'retryLater' },
|
|
233
|
+
messageProcessingStartTimestamp,
|
|
234
|
+
queueName: this.queueName,
|
|
235
|
+
});
|
|
236
|
+
throw new Error('FIFO queue: Lock acquisition failed. Triggering AWS SQS retry to preserve message order.');
|
|
237
|
+
}
|
|
238
|
+
// Retry duration exceeded for FIFO queue
|
|
239
|
+
await this.failProcessing(message);
|
|
240
|
+
this.handleMessageProcessed({
|
|
241
|
+
message: parsedMessage,
|
|
242
|
+
processingResult: { status: 'error', errorReason: 'retryLaterExceeded' },
|
|
243
|
+
messageProcessingStartTimestamp,
|
|
244
|
+
queueName: this.queueName,
|
|
245
|
+
});
|
|
246
|
+
throw new Error('FIFO queue: Retry duration exceeded. Moving message to DLQ.');
|
|
247
|
+
}
|
|
248
|
+
// Standard queue handling: republish the message with delay
|
|
193
249
|
if (this.shouldBeRetried(originalMessage, this.maxRetryDuration)) {
|
|
194
|
-
await this.
|
|
195
|
-
|
|
196
|
-
DelaySeconds: this.getMessageRetryDelayInSeconds(originalMessage),
|
|
197
|
-
MessageBody: JSON.stringify(this.updateInternalProperties(originalMessage)),
|
|
198
|
-
}));
|
|
250
|
+
const sendMessageParams = await this.buildRetryMessageParamsWithDeduplicationCheck(message, originalMessage);
|
|
251
|
+
await this.sqsClient.send(new SendMessageCommand(sendMessageParams));
|
|
199
252
|
this.handleMessageProcessed({
|
|
200
253
|
message: parsedMessage,
|
|
201
254
|
processingResult: { status: 'retryLater' },
|
|
@@ -213,12 +266,196 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
213
266
|
});
|
|
214
267
|
}
|
|
215
268
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
269
|
+
/**
|
|
270
|
+
* Sleep and periodically recheck barrier for FIFO queues.
|
|
271
|
+
* This method implements the barrier sleep mechanism to avoid unnecessary AWS retries.
|
|
272
|
+
*/
|
|
273
|
+
async sleepAndRecheckBarrier(message, originalMessage, parsedMessage, messageProcessingStartTimestamp) {
|
|
274
|
+
// Extract message type for barrier rechecks
|
|
275
|
+
// @ts-expect-error
|
|
276
|
+
const messageType = parsedMessage[this.messageTypeField];
|
|
277
|
+
// Sleep and periodically recheck barrier until maxRetryDuration is exceeded
|
|
278
|
+
while (this.shouldBeRetried(originalMessage, this.maxRetryDuration)) {
|
|
279
|
+
// Sleep for the check interval
|
|
280
|
+
await this.sleepWithVisibilityTimeoutExtension(message, this.barrierSleepCheckIntervalInMsecs);
|
|
281
|
+
// Re-check barrier
|
|
282
|
+
const result = await this.internalProcessMessage(parsedMessage, messageType).catch((err) => {
|
|
283
|
+
this.handleError(err);
|
|
284
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
285
|
+
return { error: err };
|
|
220
286
|
});
|
|
287
|
+
// If barrier passed and message processed successfully, we're done
|
|
288
|
+
if ('result' in result && result.result === 'success') {
|
|
289
|
+
this.handleMessageProcessed({
|
|
290
|
+
message: originalMessage,
|
|
291
|
+
processingResult: { status: 'consumed' },
|
|
292
|
+
messageProcessingStartTimestamp,
|
|
293
|
+
queueName: this.queueName,
|
|
294
|
+
});
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
// If handler threw an error (not just retryLater), rethrow it
|
|
298
|
+
if (result.error !== 'retryLater') {
|
|
299
|
+
this.handleMessageProcessed({
|
|
300
|
+
message: parsedMessage,
|
|
301
|
+
processingResult: { status: 'error', errorReason: 'handlerError' },
|
|
302
|
+
messageProcessingStartTimestamp,
|
|
303
|
+
queueName: this.queueName,
|
|
304
|
+
});
|
|
305
|
+
throw result.error;
|
|
306
|
+
}
|
|
307
|
+
// Barrier still not passing, continue sleeping
|
|
308
|
+
}
|
|
309
|
+
// Max retry duration exceeded, send to DLQ
|
|
310
|
+
await this.failProcessing(message);
|
|
311
|
+
this.handleMessageProcessed({
|
|
312
|
+
message: parsedMessage,
|
|
313
|
+
processingResult: { status: 'error', errorReason: 'retryLaterExceeded' },
|
|
314
|
+
messageProcessingStartTimestamp,
|
|
315
|
+
queueName: this.queueName,
|
|
316
|
+
});
|
|
317
|
+
throw new Error('FIFO queue: Retry duration exceeded. Moving message to DLQ.');
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Sleep for the specified duration while optionally extending visibility timeout to prevent message reclaim.
|
|
321
|
+
* AWS SQS will reclaim messages if visibility timeout expires during processing.
|
|
322
|
+
*
|
|
323
|
+
* Visibility extension strategy:
|
|
324
|
+
* - If heartbeatInterval is set and <= extension interval: rely on sqs-consumer's automatic extension
|
|
325
|
+
* - Otherwise: explicitly extend at configured intervals during sleep
|
|
326
|
+
*
|
|
327
|
+
* This prevents redundant API calls when heartbeatInterval already provides sufficient coverage.
|
|
328
|
+
*/
|
|
329
|
+
async sleepWithVisibilityTimeoutExtension(message, sleepDurationMs) {
|
|
330
|
+
// Check if heartbeatInterval is set and sufficient for our needs
|
|
331
|
+
// If heartbeatInterval <= extension interval, sqs-consumer will extend frequently enough
|
|
332
|
+
const heartbeatInterval = this.consumerOptionsOverride?.heartbeatInterval;
|
|
333
|
+
const extensionIntervalSeconds = this.barrierVisibilityExtensionIntervalInMsecs / 1000;
|
|
334
|
+
const shouldExplicitlyExtend = !heartbeatInterval || heartbeatInterval > extensionIntervalSeconds;
|
|
335
|
+
let remainingSleepMs = sleepDurationMs;
|
|
336
|
+
const startTime = Date.now();
|
|
337
|
+
while (remainingSleepMs > 0) {
|
|
338
|
+
// Extend visibility timeout BEFORE sleeping (not after) to prevent message from becoming visible
|
|
339
|
+
// Only extend explicitly if heartbeatInterval is not set or is too long
|
|
340
|
+
if (shouldExplicitlyExtend) {
|
|
341
|
+
try {
|
|
342
|
+
await this.sqsClient.send(new ChangeMessageVisibilityCommand({
|
|
343
|
+
QueueUrl: this.queueUrl,
|
|
344
|
+
ReceiptHandle: message.ReceiptHandle,
|
|
345
|
+
VisibilityTimeout: this.barrierVisibilityTimeoutInSeconds,
|
|
346
|
+
}));
|
|
347
|
+
}
|
|
348
|
+
catch (err) {
|
|
349
|
+
// Log error but don't fail - the message might have already been processed or deleted
|
|
350
|
+
this.logger.warn({
|
|
351
|
+
message: 'Failed to extend visibility timeout during barrier sleep',
|
|
352
|
+
error: err,
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
// Now sleep for the chunk
|
|
357
|
+
const sleepChunkMs = Math.min(remainingSleepMs, this.barrierVisibilityExtensionIntervalInMsecs);
|
|
358
|
+
await new Promise((resolve) => setTimeout(resolve, sleepChunkMs));
|
|
359
|
+
// Calculate remaining sleep time for next iteration
|
|
360
|
+
remainingSleepMs = sleepDurationMs - (Date.now() - startTime);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Determines whether to use async or sync path for building retry message params.
|
|
365
|
+
* For FIFO queues with locatorConfig, we need to fetch ContentBasedDeduplication from SQS.
|
|
366
|
+
*/
|
|
367
|
+
async buildRetryMessageParamsWithDeduplicationCheck(message, originalMessage) {
|
|
368
|
+
// For FIFO queues, check if ContentBasedDeduplication is explicitly set in creationConfig
|
|
369
|
+
// If not explicitly set (undefined), we must fetch from SQS (async path)
|
|
370
|
+
if (this.isFifoQueue) {
|
|
371
|
+
const contentBasedDedup = this.creationConfig?.queue.Attributes?.ContentBasedDeduplication;
|
|
372
|
+
const isContentBasedDedupExplicit = contentBasedDedup === 'true' || contentBasedDedup === 'false';
|
|
373
|
+
if (!isContentBasedDedupExplicit) {
|
|
374
|
+
// Need to fetch ContentBasedDeduplication attribute from SQS (locatorConfig or not explicitly set)
|
|
375
|
+
return await this.buildFifoRetryMessageParamsAsync(message, originalMessage);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
// Standard queue or FIFO with explicit ContentBasedDeduplication value - synchronous path
|
|
379
|
+
return this.buildRetryMessageParams(message, originalMessage);
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Builds SendMessageCommand parameters for retry, handling FIFO vs standard queues (synchronous)
|
|
383
|
+
*/
|
|
384
|
+
buildRetryMessageParams(message, originalMessage) {
|
|
385
|
+
const params = {
|
|
386
|
+
QueueUrl: this.queueUrl,
|
|
387
|
+
MessageBody: JSON.stringify(this.updateInternalProperties(originalMessage)),
|
|
388
|
+
};
|
|
389
|
+
if (this.isFifoQueue) {
|
|
390
|
+
// FIFO queues: preserve MessageGroupId, no DelaySeconds
|
|
391
|
+
const messageGroupId = message.Attributes?.MessageGroupId;
|
|
392
|
+
if (messageGroupId) {
|
|
393
|
+
params.MessageGroupId = messageGroupId;
|
|
394
|
+
}
|
|
395
|
+
// Check if ContentBasedDeduplication is enabled via creationConfig (synchronous)
|
|
396
|
+
// If enabled: body changes (retry count increment) generate new deduplication ID automatically
|
|
397
|
+
// If disabled: generate new MessageDeduplicationId for retry (append retry count to avoid duplication)
|
|
398
|
+
const isContentBasedDedup = this.creationConfig?.queue.Attributes?.ContentBasedDeduplication === 'true';
|
|
399
|
+
if (!isContentBasedDedup) {
|
|
400
|
+
const deduplicationId = message.Attributes?.MessageDeduplicationId;
|
|
401
|
+
if (deduplicationId) {
|
|
402
|
+
// Append retry count to create unique deduplication ID for each retry attempt
|
|
403
|
+
// This prevents SQS from treating retry as duplicate within 5-minute deduplication window
|
|
404
|
+
const retryCountValue = originalMessage
|
|
405
|
+
._internalRetryLaterCount;
|
|
406
|
+
const retryCount = typeof retryCountValue === 'number' ? retryCountValue : 0;
|
|
407
|
+
params.MessageDeduplicationId = `${deduplicationId}-retry-${retryCount + 1}`;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
// Note: FIFO queues do not support DelaySeconds at the message level.
|
|
411
|
+
// Messages will be retried immediately. Consider using visibility timeout
|
|
412
|
+
// or application-level delay if needed.
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
// Standard queues: use DelaySeconds for exponential backoff
|
|
416
|
+
params.DelaySeconds = this.getMessageRetryDelayInSeconds(originalMessage);
|
|
221
417
|
}
|
|
418
|
+
return params;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Builds FIFO retry message params when ContentBasedDeduplication attribute needs to be fetched from SQS.
|
|
422
|
+
* This is only needed when using locatorConfig (queue not created by this service).
|
|
423
|
+
* Caches the ContentBasedDeduplication value after first fetch to avoid repeated API calls.
|
|
424
|
+
*/
|
|
425
|
+
async buildFifoRetryMessageParamsAsync(message, originalMessage) {
|
|
426
|
+
const params = {
|
|
427
|
+
QueueUrl: this.queueUrl,
|
|
428
|
+
MessageBody: JSON.stringify(this.updateInternalProperties(originalMessage)),
|
|
429
|
+
};
|
|
430
|
+
const messageGroupId = message.Attributes?.MessageGroupId;
|
|
431
|
+
if (messageGroupId) {
|
|
432
|
+
params.MessageGroupId = messageGroupId;
|
|
433
|
+
}
|
|
434
|
+
// Fetch ContentBasedDeduplication attribute from SQS (cached after first fetch)
|
|
435
|
+
let isContentBasedDedup = this.cachedContentBasedDeduplication;
|
|
436
|
+
if (isContentBasedDedup === undefined) {
|
|
437
|
+
const queueAttributes = await getQueueAttributes(this.sqsClient, this.queueUrl, [
|
|
438
|
+
'ContentBasedDeduplication',
|
|
439
|
+
]);
|
|
440
|
+
isContentBasedDedup = queueAttributes.result?.attributes?.ContentBasedDeduplication === 'true';
|
|
441
|
+
this.cachedContentBasedDeduplication = isContentBasedDedup;
|
|
442
|
+
}
|
|
443
|
+
if (!isContentBasedDedup) {
|
|
444
|
+
const deduplicationId = message.Attributes?.MessageDeduplicationId;
|
|
445
|
+
if (deduplicationId) {
|
|
446
|
+
// Append retry count to create unique deduplication ID for each retry attempt
|
|
447
|
+
const retryCountValue = originalMessage
|
|
448
|
+
._internalRetryLaterCount;
|
|
449
|
+
const retryCount = typeof retryCountValue === 'number' ? retryCountValue : 0;
|
|
450
|
+
params.MessageDeduplicationId = `${deduplicationId}-retry-${retryCount + 1}`;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
return params;
|
|
454
|
+
}
|
|
455
|
+
async stopExistingConsumers(abort) {
|
|
456
|
+
await Promise.all(this.consumers.map((consumer) => consumer.stop({
|
|
457
|
+
abort,
|
|
458
|
+
})));
|
|
222
459
|
}
|
|
223
460
|
async internalProcessMessage(message, messageType) {
|
|
224
461
|
const preHandlerOutput = await this.processPrehandlers(message, messageType);
|
|
@@ -309,12 +546,13 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
309
546
|
if (resolveMessageResult.error) {
|
|
310
547
|
return ABORT_EARLY_EITHER;
|
|
311
548
|
}
|
|
312
|
-
const
|
|
549
|
+
const fullMessage = resolveMessageResult.result.body;
|
|
550
|
+
const resolveSchemaResult = this.resolveSchema(fullMessage);
|
|
313
551
|
if (resolveSchemaResult.error) {
|
|
314
552
|
this.handleError(resolveSchemaResult.error);
|
|
315
553
|
return ABORT_EARLY_EITHER;
|
|
316
554
|
}
|
|
317
|
-
const deserializationResult = parseMessage(
|
|
555
|
+
const deserializationResult = parseMessage(fullMessage, resolveSchemaResult.result, this.errorResolver);
|
|
318
556
|
if (isMessageError(deserializationResult.error)) {
|
|
319
557
|
this.handleError(deserializationResult.error);
|
|
320
558
|
return ABORT_EARLY_EITHER;
|
|
@@ -324,16 +562,31 @@ export class AbstractSqsConsumer extends AbstractSqsService {
|
|
|
324
562
|
return ABORT_EARLY_EITHER;
|
|
325
563
|
}
|
|
326
564
|
return {
|
|
327
|
-
result:
|
|
565
|
+
result: {
|
|
566
|
+
parsedMessage: deserializationResult.result.parsedMessage,
|
|
567
|
+
originalMessage: deserializationResult.result.originalMessage,
|
|
568
|
+
},
|
|
328
569
|
};
|
|
329
570
|
}
|
|
330
571
|
async failProcessing(message) {
|
|
331
572
|
if (!this.deadLetterQueueUrl)
|
|
332
573
|
return;
|
|
333
|
-
const
|
|
574
|
+
const params = {
|
|
334
575
|
QueueUrl: this.deadLetterQueueUrl,
|
|
335
576
|
MessageBody: message.Body,
|
|
336
|
-
}
|
|
577
|
+
};
|
|
578
|
+
// For FIFO queues, preserve MessageGroupId when sending to DLQ
|
|
579
|
+
if (this.isFifoQueue) {
|
|
580
|
+
const messageGroupId = message.Attributes?.MessageGroupId;
|
|
581
|
+
if (messageGroupId) {
|
|
582
|
+
params.MessageGroupId = messageGroupId;
|
|
583
|
+
}
|
|
584
|
+
const deduplicationId = message.Attributes?.MessageDeduplicationId;
|
|
585
|
+
if (deduplicationId) {
|
|
586
|
+
params.MessageDeduplicationId = deduplicationId;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
const command = new SendMessageCommand(params);
|
|
337
590
|
await this.sqsClient.send(command);
|
|
338
591
|
}
|
|
339
592
|
async getQueueVisibilityTimeout() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":"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"}
|