@loipv/nestjs-kafka 0.0.3 → 0.0.4

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.
@@ -12,16 +12,17 @@ export declare class ConsumerRegistryService implements OnApplicationShutdown {
12
12
  private readonly pressureManager;
13
13
  private readonly dlqService;
14
14
  private readonly logger;
15
- private registeredConsumers;
15
+ private consumerGroups;
16
16
  private isShuttingDown;
17
17
  constructor(kafkaCore: KafkaCoreService, batchProcessor: BatchProcessorService, idempotencyService: IdempotencyService, pressureManager: PressureManagerService, dlqService: DlqService);
18
18
  registerConsumers(consumers: ConsumerMetadata[]): void;
19
19
  private registerConsumer;
20
20
  private buildRestartOnFailure;
21
21
  startAll(): Promise<void>;
22
- private startConsumer;
23
- private startMessageConsumer;
24
- private startBatchConsumer;
22
+ private startConsumerGroup;
23
+ private startMessageGroupConsumer;
24
+ private startBatchGroupConsumer;
25
+ private processBatchMessages;
25
26
  private handleError;
26
27
  gracefulShutdown(): Promise<void>;
27
28
  onApplicationShutdown(): Promise<void>;
@@ -25,7 +25,7 @@ let ConsumerRegistryService = ConsumerRegistryService_1 = class ConsumerRegistry
25
25
  pressureManager;
26
26
  dlqService;
27
27
  logger = new common_1.Logger(ConsumerRegistryService_1.name);
28
- registeredConsumers = new Map();
28
+ consumerGroups = new Map();
29
29
  isShuttingDown = false;
30
30
  constructor(kafkaCore, batchProcessor, idempotencyService, pressureManager, dlqService) {
31
31
  this.kafkaCore = kafkaCore;
@@ -40,36 +40,49 @@ let ConsumerRegistryService = ConsumerRegistryService_1 = class ConsumerRegistry
40
40
  }
41
41
  }
42
42
  registerConsumer(metadata) {
43
- const { topic, options } = metadata;
44
- const consumerId = `${topic}-${options.groupId || 'default'}`;
45
- const consumer = this.kafkaCore.getKafka().consumer({
46
- groupId: options.groupId || `${topic}-group`,
47
- sessionTimeout: options.sessionTimeout,
48
- heartbeatInterval: options.heartbeatInterval,
49
- rebalanceTimeout: options.rebalanceTimeout,
50
- maxBytesPerPartition: 1048576,
51
- retry: options.retry
52
- ? {
53
- retries: options.retry.retries,
54
- maxRetryTime: options.retry.maxRetryTime,
55
- initialRetryTime: options.retry.initialRetryTime,
56
- factor: options.retry.factor,
57
- multiplier: options.retry.multiplier,
58
- }
59
- : undefined,
60
- });
61
- this.pressureManager.register(consumerId, consumer, {
62
- backPressureThreshold: options.backPressureThreshold || 80,
63
- resumeThreshold: 60,
64
- maxQueueSize: options.maxQueueSize || 1000,
65
- checkIntervalMs: 1000,
66
- });
67
- this.registeredConsumers.set(consumerId, {
68
- metadata,
69
- consumer,
70
- isRunning: false,
71
- });
72
- this.logger.log(`Registered consumer: ${consumerId}`);
43
+ const { topic, options, target, methodName } = metadata;
44
+ const groupId = options.groupId || `${topic}-group`;
45
+ let group = this.consumerGroups.get(groupId);
46
+ if (!group) {
47
+ const consumer = this.kafkaCore.getKafka().consumer({
48
+ groupId,
49
+ sessionTimeout: options.sessionTimeout,
50
+ heartbeatInterval: options.heartbeatInterval,
51
+ rebalanceTimeout: options.rebalanceTimeout,
52
+ maxBytesPerPartition: 1048576,
53
+ retry: options.retry
54
+ ? {
55
+ retries: options.retry.retries,
56
+ maxRetryTime: options.retry.maxRetryTime,
57
+ initialRetryTime: options.retry.initialRetryTime,
58
+ factor: options.retry.factor,
59
+ multiplier: options.retry.multiplier,
60
+ }
61
+ : undefined,
62
+ });
63
+ group = {
64
+ groupId,
65
+ consumer,
66
+ topics: new Map(),
67
+ options,
68
+ isRunning: false,
69
+ hasBatchConsumer: false,
70
+ };
71
+ this.consumerGroups.set(groupId, group);
72
+ this.pressureManager.register(groupId, consumer, {
73
+ backPressureThreshold: options.backPressureThreshold || 80,
74
+ resumeThreshold: 60,
75
+ maxQueueSize: options.maxQueueSize || 1000,
76
+ checkIntervalMs: 1000,
77
+ });
78
+ this.logger.log(`Created consumer group: ${groupId}`);
79
+ }
80
+ if (options.batch) {
81
+ group.hasBatchConsumer = true;
82
+ }
83
+ const handler = target[methodName].bind(target);
84
+ group.topics.set(topic, { metadata, handler });
85
+ this.logger.log(`Registered topic "${topic}" in group "${groupId}"`);
73
86
  }
74
87
  buildRestartOnFailure(retry) {
75
88
  if (!retry?.restartOnFailure) {
@@ -81,36 +94,38 @@ let ConsumerRegistryService = ConsumerRegistryService_1 = class ConsumerRegistry
81
94
  return () => Promise.resolve(retry.restartOnFailure);
82
95
  }
83
96
  async startAll() {
84
- const startPromises = Array.from(this.registeredConsumers.values()).map((registered) => this.startConsumer(registered));
97
+ const startPromises = Array.from(this.consumerGroups.values()).map((group) => this.startConsumerGroup(group));
85
98
  await Promise.all(startPromises);
86
99
  }
87
- async startConsumer(registered) {
88
- const { metadata, consumer } = registered;
89
- const { topic, options } = metadata;
100
+ async startConsumerGroup(group) {
101
+ const { groupId, consumer, topics } = group;
90
102
  try {
91
103
  await consumer.connect();
92
- await consumer.subscribe({
93
- topic,
94
- fromBeginning: options.fromBeginning,
95
- });
96
- if (options.batch) {
97
- await this.startBatchConsumer(registered);
104
+ const topicList = Array.from(topics.keys());
105
+ for (const topic of topicList) {
106
+ const topicHandler = topics.get(topic);
107
+ await consumer.subscribe({
108
+ topic,
109
+ fromBeginning: topicHandler.metadata.options.fromBeginning,
110
+ });
111
+ }
112
+ this.logger.log(`Consumer group "${groupId}" subscribed to topics: ${topicList.join(', ')}`);
113
+ if (group.hasBatchConsumer) {
114
+ await this.startBatchGroupConsumer(group);
98
115
  }
99
116
  else {
100
- await this.startMessageConsumer(registered);
117
+ await this.startMessageGroupConsumer(group);
101
118
  }
102
- registered.isRunning = true;
103
- this.logger.log(`Started consumer for topic: ${topic}`);
119
+ group.isRunning = true;
120
+ this.logger.log(`Started consumer group: ${groupId}`);
104
121
  }
105
122
  catch (error) {
106
- this.logger.error(`Failed to start consumer for topic: ${topic}`, error);
123
+ this.logger.error(`Failed to start consumer group: ${groupId}`, error);
107
124
  throw error;
108
125
  }
109
126
  }
110
- async startMessageConsumer(registered) {
111
- const { metadata, consumer } = registered;
112
- const { topic, options, target, methodName } = metadata;
113
- const handler = target[methodName].bind(target);
127
+ async startMessageGroupConsumer(group) {
128
+ const { consumer, topics, options } = group;
114
129
  const restartOnFailure = this.buildRestartOnFailure(options.retry);
115
130
  await consumer.run({
116
131
  autoCommit: options.autoCommit !== false,
@@ -121,20 +136,27 @@ let ConsumerRegistryService = ConsumerRegistryService_1 = class ConsumerRegistry
121
136
  eachMessage: async (payload) => {
122
137
  if (this.isShuttingDown)
123
138
  return;
124
- const { message, partition } = payload;
125
- if (options.idempotencyKey) {
126
- if (this.idempotencyService.isProcessed(message, options.idempotencyKey)) {
127
- this.logger.debug('Skipping duplicate message');
139
+ const { topic, message, partition } = payload;
140
+ const topicHandler = topics.get(topic);
141
+ if (!topicHandler) {
142
+ this.logger.warn(`No handler found for topic: ${topic}`);
143
+ return;
144
+ }
145
+ const { metadata, handler } = topicHandler;
146
+ const topicOptions = metadata.options;
147
+ if (topicOptions.idempotencyKey) {
148
+ if (this.idempotencyService.isProcessed(message, topicOptions.idempotencyKey)) {
149
+ this.logger.debug(`Skipping duplicate message from ${topic}`);
128
150
  return;
129
151
  }
130
152
  }
131
153
  try {
132
- const processedMessage = options.deserialize !== false
154
+ const processedMessage = topicOptions.deserialize !== false
133
155
  ? (0, interfaces_1.deserializeMessage)(message, topic, partition)
134
156
  : message;
135
157
  await handler(processedMessage);
136
- if (options.idempotencyKey) {
137
- this.idempotencyService.markProcessed(message, options.idempotencyKey);
158
+ if (topicOptions.idempotencyKey) {
159
+ this.idempotencyService.markProcessed(message, topicOptions.idempotencyKey);
138
160
  }
139
161
  this.dlqService.clearRetryState(message, topic, partition);
140
162
  }
@@ -144,41 +166,91 @@ let ConsumerRegistryService = ConsumerRegistryService_1 = class ConsumerRegistry
144
166
  },
145
167
  });
146
168
  }
147
- async startBatchConsumer(registered) {
148
- const { metadata, consumer } = registered;
149
- const { options, target, methodName } = metadata;
150
- const handler = target[methodName].bind(target);
169
+ async startBatchGroupConsumer(group) {
170
+ const { consumer, topics, options } = group;
151
171
  const restartOnFailure = this.buildRestartOnFailure(options.retry);
152
- const eachBatchHandler = this.batchProcessor.createEachBatchHandler(options, async (messages, topic, partition) => {
153
- if (this.isShuttingDown)
154
- return;
155
- let processableMessages = messages;
156
- if (options.idempotencyKey) {
157
- processableMessages = this.idempotencyService.filterDuplicates(messages, options.idempotencyKey);
158
- }
159
- const deserializedMessages = options.deserialize !== false
160
- ? processableMessages.map((msg) => (0, interfaces_1.deserializeMessage)(msg, topic, partition))
161
- : processableMessages;
162
- if (options.groupByKey) {
163
- const grouped = this.batchProcessor.groupMessagesByKey(deserializedMessages);
164
- await handler(grouped);
165
- }
166
- else {
167
- await handler(deserializedMessages);
168
- }
169
- if (options.idempotencyKey) {
170
- for (const msg of processableMessages) {
171
- this.idempotencyService.markProcessed(msg, options.idempotencyKey);
172
- }
173
- }
174
- });
175
172
  await consumer.run({
176
173
  autoCommit: false,
177
174
  partitionsConsumedConcurrently: options.partitionsConsumedConcurrently,
178
175
  ...(restartOnFailure && { restartOnFailure }),
179
- eachBatch: eachBatchHandler,
176
+ eachBatch: async (payload) => {
177
+ if (this.isShuttingDown)
178
+ return;
179
+ const { batch } = payload;
180
+ const { topic, partition, messages } = batch;
181
+ const topicHandler = topics.get(topic);
182
+ if (!topicHandler) {
183
+ this.logger.warn(`No handler found for topic: ${topic}`);
184
+ return;
185
+ }
186
+ const { metadata, handler } = topicHandler;
187
+ const topicOptions = metadata.options;
188
+ if (topicOptions.batch) {
189
+ const accumulator = this.batchProcessor.createBatchAccumulator(topicOptions);
190
+ accumulator.onFlush(async (batchMessages) => {
191
+ await this.processBatchMessages(batchMessages, topic, partition, topicOptions, handler);
192
+ });
193
+ for (const message of messages) {
194
+ if (!payload.isRunning() || payload.isStale())
195
+ break;
196
+ await accumulator.add(message);
197
+ payload.resolveOffset(message.offset);
198
+ await payload.heartbeat();
199
+ }
200
+ await accumulator.flush();
201
+ }
202
+ else {
203
+ for (const message of messages) {
204
+ if (!payload.isRunning() || payload.isStale())
205
+ break;
206
+ if (topicOptions.idempotencyKey) {
207
+ if (this.idempotencyService.isProcessed(message, topicOptions.idempotencyKey)) {
208
+ payload.resolveOffset(message.offset);
209
+ await payload.heartbeat();
210
+ continue;
211
+ }
212
+ }
213
+ try {
214
+ const processedMessage = topicOptions.deserialize !== false
215
+ ? (0, interfaces_1.deserializeMessage)(message, topic, partition)
216
+ : message;
217
+ await handler(processedMessage);
218
+ if (topicOptions.idempotencyKey) {
219
+ this.idempotencyService.markProcessed(message, topicOptions.idempotencyKey);
220
+ }
221
+ this.dlqService.clearRetryState(message, topic, partition);
222
+ }
223
+ catch (error) {
224
+ await this.handleError(message, error, metadata, partition);
225
+ }
226
+ payload.resolveOffset(message.offset);
227
+ await payload.heartbeat();
228
+ }
229
+ }
230
+ },
180
231
  });
181
232
  }
233
+ async processBatchMessages(messages, topic, partition, options, handler) {
234
+ let processableMessages = messages;
235
+ if (options.idempotencyKey) {
236
+ processableMessages = this.idempotencyService.filterDuplicates(messages, options.idempotencyKey);
237
+ }
238
+ const deserializedMessages = options.deserialize !== false
239
+ ? processableMessages.map((msg) => (0, interfaces_1.deserializeMessage)(msg, topic, partition))
240
+ : processableMessages;
241
+ if (options.groupByKey) {
242
+ const grouped = this.batchProcessor.groupMessagesByKey(deserializedMessages);
243
+ await handler(grouped);
244
+ }
245
+ else {
246
+ await handler(deserializedMessages);
247
+ }
248
+ if (options.idempotencyKey) {
249
+ for (const msg of processableMessages) {
250
+ this.idempotencyService.markProcessed(msg, options.idempotencyKey);
251
+ }
252
+ }
253
+ }
182
254
  async handleError(message, error, metadata, partition) {
183
255
  const { topic, options } = metadata;
184
256
  this.logger.error(`Error processing message from ${topic}`, error);
@@ -195,20 +267,20 @@ let ConsumerRegistryService = ConsumerRegistryService_1 = class ConsumerRegistry
195
267
  async gracefulShutdown() {
196
268
  this.isShuttingDown = true;
197
269
  this.logger.log('Starting graceful shutdown of consumers...');
198
- const shutdownPromises = Array.from(this.registeredConsumers.values()).map(async (registered) => {
270
+ const shutdownPromises = Array.from(this.consumerGroups.values()).map(async (group) => {
199
271
  try {
200
- if (registered.isRunning) {
201
- await registered.consumer.stop();
202
- await registered.consumer.disconnect();
272
+ if (group.isRunning) {
273
+ await group.consumer.stop();
274
+ await group.consumer.disconnect();
203
275
  }
204
276
  }
205
277
  catch (error) {
206
- this.logger.error('Error during consumer shutdown', error);
278
+ this.logger.error(`Error during consumer group shutdown: ${group.groupId}`, error);
207
279
  }
208
280
  });
209
281
  await Promise.all(shutdownPromises);
210
282
  this.idempotencyService.stopCleanup();
211
- this.logger.log('All consumers shut down gracefully');
283
+ this.logger.log('All consumer groups shut down gracefully');
212
284
  }
213
285
  async onApplicationShutdown() {
214
286
  await this.gracefulShutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"consumer-registry.service.js","sourceRoot":"","sources":["../../lib/services/consumer-registry.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consumer-registry.service.js","sourceRoot":"","sources":["../../lib/services/consumer-registry.service.ts"],"names":[],"mappings":"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"}