amqp-resilient 1.0.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.
Files changed (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +257 -0
  3. package/dist/connection/ConnectionManager.d.ts +84 -0
  4. package/dist/connection/ConnectionManager.d.ts.map +1 -0
  5. package/dist/connection/ConnectionManager.js +312 -0
  6. package/dist/connection/ConnectionManager.js.map +1 -0
  7. package/dist/connection/index.d.ts +2 -0
  8. package/dist/connection/index.d.ts.map +1 -0
  9. package/dist/connection/index.js +2 -0
  10. package/dist/connection/index.js.map +1 -0
  11. package/dist/consumer/BaseConsumer.d.ts +131 -0
  12. package/dist/consumer/BaseConsumer.d.ts.map +1 -0
  13. package/dist/consumer/BaseConsumer.js +398 -0
  14. package/dist/consumer/BaseConsumer.js.map +1 -0
  15. package/dist/consumer/index.d.ts +2 -0
  16. package/dist/consumer/index.d.ts.map +1 -0
  17. package/dist/consumer/index.js +2 -0
  18. package/dist/consumer/index.js.map +1 -0
  19. package/dist/health/HealthService.d.ts +46 -0
  20. package/dist/health/HealthService.d.ts.map +1 -0
  21. package/dist/health/HealthService.js +85 -0
  22. package/dist/health/HealthService.js.map +1 -0
  23. package/dist/health/index.d.ts +2 -0
  24. package/dist/health/index.d.ts.map +1 -0
  25. package/dist/health/index.js +2 -0
  26. package/dist/health/index.js.map +1 -0
  27. package/dist/index.d.ts +11 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +17 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/patterns/CircuitBreaker.d.ts +76 -0
  32. package/dist/patterns/CircuitBreaker.d.ts.map +1 -0
  33. package/dist/patterns/CircuitBreaker.js +156 -0
  34. package/dist/patterns/CircuitBreaker.js.map +1 -0
  35. package/dist/patterns/index.d.ts +2 -0
  36. package/dist/patterns/index.d.ts.map +1 -0
  37. package/dist/patterns/index.js +2 -0
  38. package/dist/patterns/index.js.map +1 -0
  39. package/dist/publisher/BasePublisher.d.ts +87 -0
  40. package/dist/publisher/BasePublisher.d.ts.map +1 -0
  41. package/dist/publisher/BasePublisher.js +275 -0
  42. package/dist/publisher/BasePublisher.js.map +1 -0
  43. package/dist/publisher/index.d.ts +2 -0
  44. package/dist/publisher/index.d.ts.map +1 -0
  45. package/dist/publisher/index.js +2 -0
  46. package/dist/publisher/index.js.map +1 -0
  47. package/dist/types.d.ts +184 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +35 -0
  50. package/dist/types.js.map +1 -0
  51. package/package.json +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../src/connection/ConnectionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { ConnectionManager } from './ConnectionManager.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ConnectionManager } from './ConnectionManager.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Base Consumer for AMQP
3
+ * Production-ready implementation with:
4
+ * - Automatic retry with exponential backoff
5
+ * - Dead Letter Queue (DLQ) handling
6
+ * - Circuit breaker integration
7
+ * - Message deduplication support
8
+ * - Proper error handling and logging
9
+ *
10
+ * Best Practices:
11
+ * 1. Each consumer gets its own channel
12
+ * 2. Failed messages are retried with exponential backoff
13
+ * 3. Messages exceeding max retries go to DLQ
14
+ * 4. Circuit breaker prevents cascading failures
15
+ * 5. Proper ack/nack handling
16
+ */
17
+ import type { Channel } from 'amqplib';
18
+ import type { ConnectionManager } from '../connection/ConnectionManager.js';
19
+ import { CircuitBreaker } from '../patterns/CircuitBreaker.js';
20
+ import type { AmqpLogger, ConsumerOptions, MessageContext } from '../types.js';
21
+ /**
22
+ * BaseConsumer - Abstract base class for AMQP consumers
23
+ * Extend this class and implement handle() for your specific use case
24
+ */
25
+ export declare abstract class BaseConsumer<T = unknown> {
26
+ protected readonly connection: ConnectionManager;
27
+ protected channel: Channel | null;
28
+ protected isInitialized: boolean;
29
+ protected isConsuming: boolean;
30
+ protected consumerTag: string | null;
31
+ protected circuitBreaker: CircuitBreaker | null;
32
+ protected readonly logger: AmqpLogger;
33
+ private readonly queue;
34
+ private readonly exchange;
35
+ private readonly routingKeys;
36
+ private readonly prefetch;
37
+ private readonly maxRetries;
38
+ private readonly initialRetryDelay;
39
+ private readonly maxRetryDelay;
40
+ private readonly exchangeType;
41
+ private readonly useCircuitBreaker;
42
+ constructor(connection: ConnectionManager, options: ConsumerOptions);
43
+ /**
44
+ * Get DLQ name for this consumer
45
+ */
46
+ protected getDlqName(): string;
47
+ /**
48
+ * Get retry queue name for this consumer
49
+ */
50
+ protected getRetryQueueName(): string;
51
+ /**
52
+ * Get DLX (Dead Letter Exchange) name
53
+ */
54
+ protected getDlxName(): string;
55
+ /**
56
+ * Setup exchanges for consumer (main exchange and DLX)
57
+ */
58
+ private setupExchanges;
59
+ /**
60
+ * Setup queues for consumer (DLQ, retry queue, and main queue)
61
+ */
62
+ private setupQueues;
63
+ /**
64
+ * Bind queue to exchange with routing keys
65
+ */
66
+ private bindRoutingKeys;
67
+ /**
68
+ * Initialize the consumer - setup queue, DLQ, and bindings
69
+ */
70
+ initialize(): Promise<void>;
71
+ /**
72
+ * Start consuming messages
73
+ */
74
+ start(): Promise<void>;
75
+ /**
76
+ * Handle incoming message with retry logic and circuit breaker
77
+ */
78
+ private handleMessage;
79
+ /**
80
+ * Parse message content safely
81
+ */
82
+ private parseMessageContent;
83
+ /**
84
+ * Handle message processing error
85
+ */
86
+ private handleMessageError;
87
+ /**
88
+ * Build retry headers for message
89
+ */
90
+ private buildRetryHeaders;
91
+ /**
92
+ * Create temporary retry queue with delay TTL
93
+ */
94
+ private createTempRetryQueue;
95
+ /**
96
+ * Schedule a message for retry
97
+ */
98
+ private scheduleRetry;
99
+ /**
100
+ * Calculate retry delay with exponential backoff
101
+ */
102
+ private calculateRetryDelay;
103
+ /**
104
+ * Get retry count from message headers
105
+ */
106
+ private getRetryCount;
107
+ /**
108
+ * Process the message - to be implemented by subclasses
109
+ * @param message - Parsed message content
110
+ * @param context - Message context with metadata
111
+ */
112
+ protected abstract handle(message: T, context: MessageContext): Promise<void>;
113
+ /**
114
+ * Stop consuming messages
115
+ */
116
+ stop(): Promise<void>;
117
+ /**
118
+ * Close the consumer and release resources
119
+ */
120
+ close(): Promise<void>;
121
+ /**
122
+ * Get consumer stats
123
+ */
124
+ getStats(): {
125
+ queue: string;
126
+ isConsuming: boolean;
127
+ isInitialized: boolean;
128
+ circuitBreakerState?: string;
129
+ };
130
+ }
131
+ //# sourceMappingURL=BaseConsumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseConsumer.d.ts","sourceRoot":"","sources":["../../src/consumer/BaseConsumer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAA2B,MAAM,+BAA+B,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA+B/E;;;GAGG;AACH,8BAAsB,YAAY,CAAC,CAAC,GAAG,OAAO;IAmB1C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB;IAlBlD,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IACzC,SAAS,CAAC,aAAa,UAAS;IAChC,SAAS,CAAC,WAAW,UAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,SAAS,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IACvD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4C;IACzE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;gBAGvB,UAAU,EAAE,iBAAiB,EAChD,OAAO,EAAE,eAAe;IAyB1B;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B;;OAEG;YACW,cAAc;IAM5B;;OAEG;YACW,WAAW;IA4BzB;;OAEG;YACW,eAAe;IAW7B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BjC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B;;OAEG;YACW,aAAa;IAgD3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;YACW,kBAAkB;IA8ChC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;YACW,oBAAoB;IAelC;;OAEG;YACW,aAAa;IAqC3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7E;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;OAEG;IACH,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B;CAQF"}
@@ -0,0 +1,398 @@
1
+ import { CircuitBreaker, CircuitBreakerOpenError } from '../patterns/CircuitBreaker.js';
2
+ /** Default retry configuration */
3
+ const DEFAULTS = {
4
+ MAX_RETRIES: 3,
5
+ INITIAL_RETRY_DELAY: 1000,
6
+ MAX_RETRY_DELAY: 30000,
7
+ PREFETCH: 10,
8
+ CIRCUIT_BREAKER_THRESHOLD: 5,
9
+ };
10
+ /** Header names for retry tracking */
11
+ const HEADER = {
12
+ RETRY_COUNT: 'x-retry-count',
13
+ ORIGINAL_EXCHANGE: 'x-original-exchange',
14
+ ORIGINAL_ROUTING_KEY: 'x-original-routing-key',
15
+ FIRST_FAILURE_TIME: 'x-first-failure-time',
16
+ LAST_ERROR: 'x-last-error',
17
+ };
18
+ /**
19
+ * Type-safe header value getter
20
+ */
21
+ function getHeaderValue(headers, key) {
22
+ if (!headers) {
23
+ return undefined;
24
+ }
25
+ const entry = Object.entries(headers).find(([k]) => k === key);
26
+ return entry ? entry[1] : undefined;
27
+ }
28
+ /**
29
+ * BaseConsumer - Abstract base class for AMQP consumers
30
+ * Extend this class and implement handle() for your specific use case
31
+ */
32
+ export class BaseConsumer {
33
+ connection;
34
+ channel = null;
35
+ isInitialized = false;
36
+ isConsuming = false;
37
+ consumerTag = null;
38
+ circuitBreaker = null;
39
+ logger;
40
+ queue;
41
+ exchange;
42
+ routingKeys;
43
+ prefetch;
44
+ maxRetries;
45
+ initialRetryDelay;
46
+ maxRetryDelay;
47
+ exchangeType;
48
+ useCircuitBreaker;
49
+ constructor(connection, options) {
50
+ this.connection = connection;
51
+ this.queue = options.queue;
52
+ this.exchange = options.exchange;
53
+ this.routingKeys = options.routingKeys;
54
+ this.prefetch = options.prefetch ?? DEFAULTS.PREFETCH;
55
+ this.maxRetries = options.maxRetries ?? DEFAULTS.MAX_RETRIES;
56
+ this.initialRetryDelay = options.initialRetryDelay ?? DEFAULTS.INITIAL_RETRY_DELAY;
57
+ this.maxRetryDelay = options.maxRetryDelay ?? DEFAULTS.MAX_RETRY_DELAY;
58
+ this.exchangeType = options.exchangeType ?? 'topic';
59
+ this.useCircuitBreaker = options.useCircuitBreaker ?? true;
60
+ this.logger = options.logger ?? connection.getLogger();
61
+ // Initialize circuit breaker if enabled
62
+ if (this.useCircuitBreaker) {
63
+ this.circuitBreaker = new CircuitBreaker({
64
+ name: `consumer-${this.queue}`,
65
+ failureThreshold: options.circuitBreakerThreshold ?? DEFAULTS.CIRCUIT_BREAKER_THRESHOLD,
66
+ resetTimeout: 30000,
67
+ successThreshold: 3,
68
+ logger: this.logger,
69
+ });
70
+ }
71
+ }
72
+ /**
73
+ * Get DLQ name for this consumer
74
+ */
75
+ getDlqName() {
76
+ return `${this.queue}.dlq`;
77
+ }
78
+ /**
79
+ * Get retry queue name for this consumer
80
+ */
81
+ getRetryQueueName() {
82
+ return `${this.queue}.retry`;
83
+ }
84
+ /**
85
+ * Get DLX (Dead Letter Exchange) name
86
+ */
87
+ getDlxName() {
88
+ return `${this.queue}.dlx`;
89
+ }
90
+ /**
91
+ * Setup exchanges for consumer (main exchange and DLX)
92
+ */
93
+ async setupExchanges() {
94
+ if (!this.channel)
95
+ return;
96
+ await this.channel.assertExchange(this.exchange, this.exchangeType, { durable: true });
97
+ await this.channel.assertExchange(this.getDlxName(), 'direct', { durable: true });
98
+ }
99
+ /**
100
+ * Setup queues for consumer (DLQ, retry queue, and main queue)
101
+ */
102
+ async setupQueues() {
103
+ if (!this.channel)
104
+ return;
105
+ // DLQ
106
+ await this.channel.assertQueue(this.getDlqName(), { durable: true, autoDelete: false });
107
+ await this.channel.bindQueue(this.getDlqName(), this.getDlxName(), this.getDlqName());
108
+ // Retry queue
109
+ await this.channel.assertQueue(this.getRetryQueueName(), {
110
+ durable: true,
111
+ autoDelete: false,
112
+ arguments: {
113
+ 'x-dead-letter-exchange': this.exchange,
114
+ 'x-message-ttl': this.initialRetryDelay,
115
+ },
116
+ });
117
+ // Main queue
118
+ await this.channel.assertQueue(this.queue, {
119
+ durable: true,
120
+ autoDelete: false,
121
+ arguments: {
122
+ 'x-dead-letter-exchange': this.getDlxName(),
123
+ 'x-dead-letter-routing-key': this.getDlqName(),
124
+ },
125
+ });
126
+ }
127
+ /**
128
+ * Bind queue to exchange with routing keys
129
+ */
130
+ async bindRoutingKeys() {
131
+ if (!this.channel)
132
+ return;
133
+ for (const routingKey of this.routingKeys) {
134
+ await this.channel.bindQueue(this.queue, this.exchange, routingKey);
135
+ this.logger.debug({ queue: this.queue, exchange: this.exchange, routingKey }, 'Queue bound to exchange');
136
+ }
137
+ }
138
+ /**
139
+ * Initialize the consumer - setup queue, DLQ, and bindings
140
+ */
141
+ async initialize() {
142
+ if (this.isInitialized)
143
+ return;
144
+ try {
145
+ this.channel = await this.connection.createChannel();
146
+ if (this.prefetch) {
147
+ await this.channel.prefetch(this.prefetch);
148
+ }
149
+ await this.setupExchanges();
150
+ await this.setupQueues();
151
+ await this.bindRoutingKeys();
152
+ this.isInitialized = true;
153
+ this.logger.info({
154
+ queue: this.queue,
155
+ exchange: this.exchange,
156
+ routingKeys: this.routingKeys,
157
+ maxRetries: this.maxRetries,
158
+ dlq: this.getDlqName(),
159
+ }, 'Consumer initialized');
160
+ }
161
+ catch (error) {
162
+ this.logger.error({ err: error, queue: this.queue }, 'Failed to initialize consumer');
163
+ throw error;
164
+ }
165
+ }
166
+ /**
167
+ * Start consuming messages
168
+ */
169
+ async start() {
170
+ if (!this.isInitialized) {
171
+ await this.initialize();
172
+ }
173
+ if (this.isConsuming || !this.channel)
174
+ return;
175
+ const result = await this.channel.consume(this.queue, (msg) => {
176
+ if (!msg)
177
+ return;
178
+ void this.handleMessage(msg);
179
+ }, { noAck: false });
180
+ this.consumerTag = result.consumerTag;
181
+ this.isConsuming = true;
182
+ this.logger.info({ queue: this.queue, consumerTag: this.consumerTag }, 'Consumer started');
183
+ }
184
+ /**
185
+ * Handle incoming message with retry logic and circuit breaker
186
+ */
187
+ async handleMessage(msg) {
188
+ const startTime = Date.now();
189
+ const routingKey = msg.fields.routingKey;
190
+ const messageId = msg.properties.messageId || `auto-${Date.now()}`;
191
+ const correlationId = msg.properties.correlationId;
192
+ const retryCount = this.getRetryCount(msg);
193
+ const rawHeaders = msg.properties.headers;
194
+ const headers = rawHeaders ?? {};
195
+ const context = {
196
+ routingKey,
197
+ messageId,
198
+ correlationId,
199
+ retryCount,
200
+ receivedAt: new Date(),
201
+ headers,
202
+ };
203
+ this.logger.debug({ queue: this.queue, routingKey, messageId, correlationId, retryCount }, 'Processing message');
204
+ try {
205
+ // Parse message content
206
+ const content = this.parseMessageContent(msg);
207
+ // Execute with circuit breaker if enabled
208
+ if (this.circuitBreaker) {
209
+ await this.circuitBreaker.execute(async () => {
210
+ await this.handle(content, context);
211
+ });
212
+ }
213
+ else {
214
+ await this.handle(content, context);
215
+ }
216
+ // Acknowledge message on success
217
+ this.channel?.ack(msg);
218
+ this.logger.debug({ queue: this.queue, routingKey, messageId, durationMs: Date.now() - startTime }, 'Message processed successfully');
219
+ }
220
+ catch (error) {
221
+ await this.handleMessageError(msg, error, context, startTime);
222
+ }
223
+ }
224
+ /**
225
+ * Parse message content safely
226
+ */
227
+ parseMessageContent(msg) {
228
+ const contentType = msg.properties.contentType;
229
+ const content = msg.content.toString();
230
+ if (contentType === 'application/json' || content.startsWith('{') || content.startsWith('[')) {
231
+ try {
232
+ return JSON.parse(content);
233
+ }
234
+ catch {
235
+ return content;
236
+ }
237
+ }
238
+ return content;
239
+ }
240
+ /**
241
+ * Handle message processing error
242
+ */
243
+ async handleMessageError(msg, error, context, startTime) {
244
+ const errorMessage = error instanceof Error ? error.message : String(error);
245
+ const isCircuitBreakerOpen = error instanceof CircuitBreakerOpenError;
246
+ this.logger.error({
247
+ err: error,
248
+ queue: this.queue,
249
+ routingKey: context.routingKey,
250
+ messageId: context.messageId,
251
+ retryCount: context.retryCount,
252
+ durationMs: Date.now() - startTime,
253
+ isCircuitBreakerOpen,
254
+ }, 'Failed to process message');
255
+ // If circuit breaker is open, requeue the message for later
256
+ if (isCircuitBreakerOpen) {
257
+ this.channel?.nack(msg, false, true); // Requeue
258
+ return;
259
+ }
260
+ // Check if we should retry
261
+ if (context.retryCount < this.maxRetries) {
262
+ await this.scheduleRetry(msg, context.retryCount, errorMessage);
263
+ }
264
+ else {
265
+ // Max retries exceeded - send to DLQ
266
+ this.logger.warn({
267
+ queue: this.queue,
268
+ messageId: context.messageId,
269
+ retryCount: context.retryCount,
270
+ maxRetries: this.maxRetries,
271
+ }, 'Message exceeded max retries, sending to DLQ');
272
+ this.channel?.nack(msg, false, false); // Don't requeue, let DLQ binding handle it
273
+ }
274
+ }
275
+ /**
276
+ * Build retry headers for message
277
+ */
278
+ buildRetryHeaders(msg, newRetryCount, errorMessage) {
279
+ const existingHeaders = msg.properties.headers;
280
+ const firstFailureTime = getHeaderValue(existingHeaders, HEADER.FIRST_FAILURE_TIME);
281
+ const firstFailure = typeof firstFailureTime === 'number' ? firstFailureTime : Date.now();
282
+ return {
283
+ ...(existingHeaders || {}),
284
+ [HEADER.RETRY_COUNT]: newRetryCount,
285
+ [HEADER.ORIGINAL_EXCHANGE]: msg.fields.exchange || this.exchange,
286
+ [HEADER.ORIGINAL_ROUTING_KEY]: msg.fields.routingKey,
287
+ [HEADER.FIRST_FAILURE_TIME]: firstFailure,
288
+ [HEADER.LAST_ERROR]: errorMessage.substring(0, 500),
289
+ };
290
+ }
291
+ /**
292
+ * Create temporary retry queue with delay TTL
293
+ */
294
+ async createTempRetryQueue(delay, routingKey) {
295
+ const tempRetryQueue = `${this.getRetryQueueName()}.${delay}`;
296
+ await this.channel?.assertQueue(tempRetryQueue, {
297
+ durable: true,
298
+ autoDelete: true,
299
+ expires: delay + 60000,
300
+ arguments: {
301
+ 'x-dead-letter-exchange': this.exchange,
302
+ 'x-dead-letter-routing-key': routingKey,
303
+ 'x-message-ttl': delay,
304
+ },
305
+ });
306
+ return tempRetryQueue;
307
+ }
308
+ /**
309
+ * Schedule a message for retry
310
+ */
311
+ async scheduleRetry(msg, currentRetryCount, errorMessage) {
312
+ const newRetryCount = currentRetryCount + 1;
313
+ const delay = this.calculateRetryDelay(newRetryCount);
314
+ this.logger.info({
315
+ queue: this.queue,
316
+ messageId: msg.properties.messageId,
317
+ currentRetry: currentRetryCount,
318
+ nextRetry: newRetryCount,
319
+ delayMs: delay,
320
+ }, 'Scheduling message retry');
321
+ try {
322
+ const headers = this.buildRetryHeaders(msg, newRetryCount, errorMessage);
323
+ const tempRetryQueue = await this.createTempRetryQueue(delay, msg.fields.routingKey);
324
+ this.channel?.publish('', tempRetryQueue, msg.content, {
325
+ ...msg.properties,
326
+ headers,
327
+ persistent: true,
328
+ });
329
+ this.channel?.ack(msg);
330
+ }
331
+ catch (retryError) {
332
+ this.logger.error({ err: retryError, queue: this.queue }, 'Failed to schedule retry, sending to DLQ');
333
+ this.channel?.nack(msg, false, false);
334
+ }
335
+ }
336
+ /**
337
+ * Calculate retry delay with exponential backoff
338
+ */
339
+ calculateRetryDelay(retryCount) {
340
+ const delay = Math.min(this.initialRetryDelay * Math.pow(2, retryCount - 1), this.maxRetryDelay);
341
+ // Add jitter (0-25%)
342
+ const jitter = delay * Math.random() * 0.25;
343
+ return Math.floor(delay + jitter);
344
+ }
345
+ /**
346
+ * Get retry count from message headers
347
+ */
348
+ getRetryCount(msg) {
349
+ const headers = msg.properties.headers;
350
+ const retryCount = getHeaderValue(headers, HEADER.RETRY_COUNT);
351
+ return typeof retryCount === 'number' ? retryCount : 0;
352
+ }
353
+ /**
354
+ * Stop consuming messages
355
+ */
356
+ async stop() {
357
+ if (!this.isConsuming || !this.channel || !this.consumerTag)
358
+ return;
359
+ try {
360
+ await this.channel.cancel(this.consumerTag);
361
+ this.isConsuming = false;
362
+ this.consumerTag = null;
363
+ this.logger.info({ queue: this.queue }, 'Consumer stopped');
364
+ }
365
+ catch (error) {
366
+ this.logger.error({ err: error, queue: this.queue }, 'Error stopping consumer');
367
+ }
368
+ }
369
+ /**
370
+ * Close the consumer and release resources
371
+ */
372
+ async close() {
373
+ await this.stop();
374
+ if (this.channel) {
375
+ try {
376
+ await this.channel.close();
377
+ }
378
+ catch (error) {
379
+ this.logger.debug({ err: error, queue: this.queue }, 'Error closing channel');
380
+ }
381
+ }
382
+ this.channel = null;
383
+ this.isInitialized = false;
384
+ this.logger.info({ queue: this.queue }, 'Consumer closed');
385
+ }
386
+ /**
387
+ * Get consumer stats
388
+ */
389
+ getStats() {
390
+ return {
391
+ queue: this.queue,
392
+ isConsuming: this.isConsuming,
393
+ isInitialized: this.isInitialized,
394
+ circuitBreakerState: this.circuitBreaker?.getState(),
395
+ };
396
+ }
397
+ }
398
+ //# sourceMappingURL=BaseConsumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseConsumer.js","sourceRoot":"","sources":["../../src/consumer/BaseConsumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { BaseConsumer } from './BaseConsumer.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/consumer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { BaseConsumer } from './BaseConsumer.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consumer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Health Service for tracking connection health
3
+ * Provides global status monitoring for all AMQP connections
4
+ */
5
+ import { ConnectionStatus } from '../types.js';
6
+ /**
7
+ * HealthService - Singleton for tracking queue connection health
8
+ */
9
+ declare class HealthServiceClass {
10
+ private connectionStatuses;
11
+ /**
12
+ * Register or update a connection's status
13
+ */
14
+ registerStatus(connectionName: string, status: ConnectionStatus): void;
15
+ /**
16
+ * Get status of a specific connection
17
+ */
18
+ getStatus(connectionName: string): ConnectionStatus | undefined;
19
+ /**
20
+ * Get all connection statuses
21
+ */
22
+ getAllStatuses(): Record<string, string>;
23
+ /**
24
+ * Check if any connections are dead
25
+ */
26
+ hasDeadConnections(): boolean;
27
+ /**
28
+ * Check if all connections are healthy
29
+ */
30
+ isHealthy(): boolean;
31
+ /**
32
+ * Get overall status for health endpoint
33
+ */
34
+ getOverallStatus(): 'healthy' | 'degraded' | 'dead' | 'not_configured';
35
+ /**
36
+ * Unregister a connection
37
+ */
38
+ unregisterConnection(connectionName: string): void;
39
+ /**
40
+ * Clear all connections (useful for testing)
41
+ */
42
+ clear(): void;
43
+ }
44
+ export declare const HealthService: HealthServiceClass;
45
+ export {};
46
+ //# sourceMappingURL=HealthService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthService.d.ts","sourceRoot":"","sources":["../../src/health/HealthService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,cAAM,kBAAkB;IACtB,OAAO,CAAC,kBAAkB,CAAuC;IAEjE;;OAEG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAItE;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/D;;OAEG;IACH,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIxC;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAS7B;;OAEG;IACH,SAAS,IAAI,OAAO;IAapB;;OAEG;IACH,gBAAgB,IAAI,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,gBAAgB;IAkBtE;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIlD;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED,eAAO,MAAM,aAAa,oBAA2B,CAAC"}