@restorecommerce/kafka-client 1.3.9 → 1.3.11

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.
@@ -1,13 +1,14 @@
1
1
  import * as retry from 'retry';
2
- import { isNullish, clone, isIncludedIn, filter, pick, keys } from 'remeda';
2
+ import { isNullish, clone, isIncludedIn, filter, pick } from 'remeda';
3
3
  import { EventEmitter } from 'events';
4
4
  import * as async from 'async';
5
5
  import { Producer, Consumer, Admin, noopDeserializer, noopSerializer } from '@platformatic/kafka';
6
6
  import { decodeMessage, encodeMessage } from '../../../protos.js';
7
+ import { decomposeError } from '../../../utils.js';
7
8
  /**
8
9
  * A Kafka topic.
9
10
  */
10
- export class Topic {
11
+ export class KafkaTopic {
11
12
  name;
12
13
  emitter;
13
14
  provider;
@@ -45,31 +46,33 @@ export class Topic {
45
46
  this.manualOffsetCommit = manualOffsetCommit;
46
47
  }
47
48
  async createIfNotExists() {
48
- return new Promise((resolve, reject) => {
49
- this.provider.admin.listTopics().then(topics => {
50
- if (topics.indexOf(this.name) < 0) {
51
- const operation = retry.operation();
52
- operation.attempt(async () => {
53
- this.provider.admin.createTopics({
49
+ const topics = await this.provider.admin.listTopics();
50
+ if (!topics.includes(this.name)) {
51
+ return await new Promise((resolve, reject) => {
52
+ const operation = retry.operation();
53
+ operation.attempt(async (attemptNo) => {
54
+ try {
55
+ await this.provider.admin.createTopics({
54
56
  topics: [this.name]
55
- }).then(() => {
56
- this.provider.logger.info(`Topic ${this.name} created successfully`);
57
- resolve();
58
- }).catch((err) => {
59
- const { code, message, details, stack } = err;
60
- this.provider.logger.error(`Cannot create topic ${this.name}:`, { code, message, details, stack });
61
- operation.retry(err);
62
- const attemptNo = operation.attempts();
63
- this.provider.logger.info(`Retry creating the Topic, attempt no: ${attemptNo}`);
64
57
  });
65
- });
66
- }
67
- else {
68
- this.provider.logger.warn(`Topic ${this.name} already exists`);
69
- resolve();
70
- }
58
+ this.provider.logger.info(`Topic ${this.name} created successfully, attempt no: ${attemptNo}`);
59
+ resolve();
60
+ }
61
+ catch (err) {
62
+ this.provider.logger.error(`Cannot create topic ${this.name}:`, decomposeError(err));
63
+ if (operation.retry(err)) {
64
+ this.provider.logger.info(`Retry creating Topic ${this.name}, attempt no: ${attemptNo}`);
65
+ }
66
+ else {
67
+ reject(err);
68
+ }
69
+ }
70
+ });
71
71
  });
72
- });
72
+ }
73
+ else {
74
+ this.provider.logger.debug(`Topic ${this.name} exists`);
75
+ }
73
76
  }
74
77
  /**
75
78
  * Returns the number of listeners for the given event.
@@ -77,7 +80,7 @@ export class Topic {
77
80
  * @param {string} eventName Name of the event
78
81
  * @return {number} Number of listeners
79
82
  */
80
- listenerCount(eventName) {
83
+ async listenerCount(eventName) {
81
84
  if (isNullish(eventName)) {
82
85
  throw new Error('missing argument eventName');
83
86
  }
@@ -90,7 +93,7 @@ export class Topic {
90
93
  * @param {string} eventName [description]
91
94
  * @return {Boolean} True when listeners exist, false if not.
92
95
  */
93
- hasListeners(eventName) {
96
+ async hasListeners(eventName) {
94
97
  if (isNullish(eventName)) {
95
98
  throw new Error('missing argument eventName');
96
99
  }
@@ -108,7 +111,8 @@ export class Topic {
108
111
  async removeListener(eventName, listener) {
109
112
  this.provider.logger.verbose(`Removing listener from event ${eventName}`);
110
113
  this.emitter.removeListener(eventName, listener);
111
- if (this.listenerCount(eventName) === 0) {
114
+ const count = await this.listenerCount(eventName);
115
+ if (count === 0) {
112
116
  await this.$unsubscribe(eventName);
113
117
  }
114
118
  }
@@ -121,7 +125,8 @@ export class Topic {
121
125
  async removeAllListeners(eventName) {
122
126
  this.provider.logger.verbose(`Removing all listeners from event ${eventName}`);
123
127
  this.emitter.removeAllListeners(eventName);
124
- if (this.listenerCount(eventName) === 0) {
128
+ const count = await this.listenerCount(eventName);
129
+ if (count === 0) {
125
130
  await this.$unsubscribe(eventName);
126
131
  }
127
132
  }
@@ -132,30 +137,19 @@ export class Topic {
132
137
  * @return {bigint} offset number
133
138
  */
134
139
  async $offset(time = -1n) {
135
- await this.initConsumerIfNotExists();
136
- return new Promise((resolve, reject) => {
137
- if (time < 0n) {
138
- this.consumer.listOffsets({
139
- topics: [this.name],
140
- }).then((r) => {
141
- resolve(r.get(this.name)[0]);
142
- return r.get(this.name)[0];
143
- }).catch((err) => {
144
- this.provider.logger.error('Error occurred retrieving topic offset:', { code: err.code, message: err.message, stack: err.stack });
145
- reject(err);
146
- });
147
- }
148
- return this.consumer.listOffsets({
140
+ try {
141
+ await this.initConsumerIfNotExists();
142
+ return await this.consumer.listOffsets({
149
143
  topics: [this.name],
150
- timestamp: time,
151
- }).then(r => {
152
- resolve(r.get(this.name)[0]);
144
+ timestamp: time < 0n ? time : undefined,
145
+ }).then((r) => {
153
146
  return r.get(this.name)[0];
154
- }).catch((err) => {
155
- this.provider.logger.error('Error occurred retrieving topic offset:', { code: err.code, message: err.message, stack: err.stack });
156
- reject(err);
157
147
  });
158
- });
148
+ }
149
+ catch (err) {
150
+ this.provider.logger.error('Error occurred retrieving topic offset:', decomposeError(err));
151
+ throw err;
152
+ }
159
153
  }
160
154
  /**
161
155
  * Suspend the calling function until the Kafka client received a message with the offset.
@@ -207,7 +201,7 @@ export class Topic {
207
201
  * @param {bigint} offset The offset at which to restart from.
208
202
  */
209
203
  async $reset(eventName, offset) {
210
- if (this.subscribed.indexOf(eventName) > -1) {
204
+ if (this.subscribed.includes(eventName)) {
211
205
  await this.$unsubscribe(eventName);
212
206
  }
213
207
  await this.$subscribe(eventName, offset);
@@ -260,12 +254,15 @@ export class Topic {
260
254
  }
261
255
  async initConsumerIfNotExists(queue) {
262
256
  if (!this.consumer) {
263
- this.consumer = await this.provider.newConsumer(this.provider.config.groupId + '_' + this.name);
264
- await this.consumer.connectToBrokers().then(() => {
257
+ this.consumer = await this.provider.newConsumer(`${this.provider.config.groupId}_${this.name}`);
258
+ try {
259
+ await this.consumer.connectToBrokers();
265
260
  this.provider.logger.info(`Consumer for topic '${this.name}' connected`);
266
- }).catch((err) => {
267
- this.provider.logger.error(`Consumer for topic '${this.name}' connection error`, { code: err.code, message: err.message, stack: err.stack });
268
- });
261
+ }
262
+ catch (err) {
263
+ this.provider.logger.error(`Consumer for topic '${this.name}' connection error`, decomposeError(err));
264
+ throw err;
265
+ }
269
266
  // On receiving the message on Kafka consumer put the message to async Queue.
270
267
  if (queue) {
271
268
  // start drain process
@@ -284,7 +281,7 @@ export class Topic {
284
281
  if (!this.subscribedToTopic) {
285
282
  this.subscribedToTopic = true;
286
283
  await this.initConsumerIfNotExists(queue);
287
- await this.consumer.consume({
284
+ this.consumer.consume({
288
285
  sessionTimeout: 10000,
289
286
  heartbeatInterval: 500,
290
287
  topics: [this.name],
@@ -304,8 +301,9 @@ export class Topic {
304
301
  this.makeDataHandler(message);
305
302
  }
306
303
  });
307
- }).catch((err) => {
308
- this.provider.logger.error(`Consumer for topic '${this.name}' failed to run`, { code: err.code, message: err.message, stack: err.stack });
304
+ }, (err) => {
305
+ this.subscribedToTopic = false;
306
+ this.provider.logger.error(`Consumer for topic '${this.name}' failed to run`, decomposeError(err));
309
307
  throw err;
310
308
  });
311
309
  }
@@ -336,7 +334,6 @@ export class Topic {
336
334
  }
337
335
  });
338
336
  this.filterWaitQueue(message.offset);
339
- done();
340
337
  });
341
338
  }
342
339
  else {
@@ -351,38 +348,39 @@ export class Topic {
351
348
  });
352
349
  this.provider.logger.info('Async queue draining started.');
353
350
  }
354
- commit() {
351
+ async commit() {
355
352
  // Check if manual offset commit is enabled
356
353
  if (!this.manualOffsetCommit) {
357
- this.commitCurrentOffsets().then(() => {
354
+ return await this.commitCurrentOffsets().then(() => {
358
355
  this.provider.logger.verbose('Offsets committed successfully');
359
- }).catch(error => {
360
- this.provider.logger.warn('Failed to commit offsets, resuming anyway after:', error);
356
+ }, async (error) => {
357
+ this.provider.logger.warn('Failed to commit offsets, resuming anyway after:', decomposeError(error));
361
358
  // Fix for kafkaJS onCrash issue for KafkaJSNonRetriableError, to reset the consumers
362
359
  this.provider.logger.warn('Commit error name', { name: error.name });
363
360
  this.provider.logger.warn('Commit error message', { message: error.message });
364
361
  if ((error.name === 'KafkaJSNonRetriableError' || error.name === 'KafkaJSError') && error.message === 'The coordinator is not aware of this member') {
365
362
  this.provider.logger.info('Reset Consumer connection due to KafkaJSNonRetriableError');
366
- this.$resetConsumer(this.subscribed, this.currentOffset);
363
+ await this.$resetConsumer(this.subscribed, this.currentOffset);
367
364
  this.provider.logger.info('Consumer connection reset successfully');
368
365
  }
369
366
  });
370
367
  }
371
368
  }
372
369
  async commitCurrentOffsets() {
373
- return new Promise((resolve, reject) => {
374
- this.consumer.commit({
370
+ try {
371
+ await this.consumer.commit({
375
372
  offsets: [{
376
373
  leaderEpoch: 0, // ?
377
374
  topic: this.name,
378
375
  offset: this.currentOffset,
379
376
  partition: 0 // ?
380
377
  }]
381
- }).then(resolve).catch((err) => {
382
- this.provider.logger.error('Error committing offset', { code: err.code, message: err.message, stack: err.stack });
383
- reject(err);
384
378
  });
385
- });
379
+ }
380
+ catch (err) {
381
+ this.provider.logger.error('Error committing offset', decomposeError(err));
382
+ throw err;
383
+ }
386
384
  }
387
385
  /**
388
386
  * Manually commit the current offset.
@@ -410,7 +408,7 @@ export class Topic {
410
408
  if (this.hasListeners(eventName)) {
411
409
  let decodedMsg = this.provider.decodeObject(this.config, eventName, message);
412
410
  if (decodedMsg) {
413
- decodedMsg = pick(decodedMsg, keys(decodedMsg)); // hack around messy protobuf.js object
411
+ decodedMsg = pick(decodedMsg, Object.keys(decodedMsg)); // hack around messy protobuf.js object
414
412
  this.provider.logger.debug(`kafka received event with topic ${context.topic} and event name ${eventName} at offset ${context.offset.toString(10)}`, { decodedMsg });
415
413
  this.emitter.emit(eventName, decodedMsg, context, this.config, eventName);
416
414
  }
@@ -450,14 +448,17 @@ export class Topic {
450
448
  async emit(eventName, message) {
451
449
  await this.provider.$send(this.name, eventName, message);
452
450
  }
451
+ stop() {
452
+ throw new Error('Method not implemented.');
453
+ }
453
454
  }
454
455
  /**
455
456
  * Events provider.
456
457
  */
457
458
  export class Kafka {
458
- config;
459
- topics;
460
459
  logger;
460
+ config;
461
+ topics = {};
461
462
  producer;
462
463
  admin;
463
464
  producerConnected;
@@ -472,9 +473,8 @@ export class Kafka {
472
473
  * @param {object} logger
473
474
  */
474
475
  constructor(config, logger) {
475
- this.config = clone(config);
476
- this.topics = {};
477
476
  this.logger = logger;
477
+ this.config = clone(config);
478
478
  }
479
479
  /**
480
480
  * Start connects to kafka with a producer.
@@ -510,47 +510,47 @@ export class Kafka {
510
510
  if ('brokers' in this.commonOptions) {
511
511
  this.commonOptions['bootstrapBrokers'] = this.commonOptions['brokers'];
512
512
  }
513
- this.logger.info(`[kafka-client] Connecting - attempt No: ${operation.attempts()}`);
513
+ this.logger?.info(`[kafka-client] Connecting - attempt No: ${operation.attempts()}`);
514
514
  this.producer = new Producer(this.commonOptions);
515
515
  this.admin = new Admin(this.commonOptions);
516
516
  // waiting for producer to be ready
517
517
  await new Promise((resolveProducer, rejectProducer) => {
518
518
  this.producer.on('client:broker:connect', () => {
519
519
  this.producerConnected = true;
520
- this.logger.info('The Producer is ready.');
520
+ this.logger?.info('The Producer is ready.');
521
521
  });
522
522
  this.producer.on('client:broker:disconnect', (err) => {
523
523
  this.producerConnected = false;
524
- this.logger.warn('The Producer has disconnected:', err);
524
+ this.logger?.warn('The Producer has disconnected:', err);
525
525
  rejectProducer(err);
526
526
  });
527
527
  this.producer.on('client:broker:failed', (err) => {
528
- this.logger.warn('The Producer connection failed:', err);
528
+ this.logger?.warn('The Producer connection failed:', err);
529
529
  rejectProducer(err);
530
530
  });
531
531
  this.producer.connectToBrokers().then(() => {
532
532
  resolveProducer(true);
533
533
  }).catch((err) => {
534
534
  rejectProducer(err);
535
- this.logger.warn('Producer connection error:', err);
535
+ this.logger?.warn('Producer connection error:', err);
536
536
  });
537
537
  }).then(() => {
538
538
  this.admin.on('client:broker:connect', () => {
539
- this.logger.info('The Admin is ready.');
539
+ this.logger?.info('The Admin is ready.');
540
540
  this.adminConnected = true;
541
541
  });
542
542
  this.admin.on('client:broker:disconnect', (err) => {
543
- this.logger.warn('The Admin connection failed:', err);
543
+ this.logger?.warn('The Admin connection failed:', err);
544
544
  this.adminConnected = false;
545
545
  });
546
546
  this.admin.on('client:broker:failed', (err) => {
547
- this.logger.warn('The Admin connection failed:', err);
547
+ this.logger?.warn('The Admin connection failed:', err);
548
548
  throw err;
549
549
  });
550
550
  this.admin.connectToBrokers().then(() => {
551
551
  resolveRetry();
552
552
  }).catch((err) => {
553
- this.logger.warn('Admin connection error:', err);
553
+ this.logger?.warn('Admin connection error:', err);
554
554
  throw err;
555
555
  });
556
556
  });
@@ -559,7 +559,7 @@ export class Kafka {
559
559
  operation.retry(err);
560
560
  const attemptNo = operation.attempts();
561
561
  this.producer?.close();
562
- this.logger.info(`Retry initialize the Producer, attempt No: ${attemptNo}`);
562
+ this.logger?.info(`Retry initialize the Producer, attempt No: ${attemptNo}`);
563
563
  }
564
564
  });
565
565
  });
@@ -585,7 +585,7 @@ export class Kafka {
585
585
  return decodeMessage(msg, config[eventName].messageObject);
586
586
  }
587
587
  catch (error) {
588
- this.logger.error(`error on decoding message with event ${eventName}`, { error });
588
+ this.logger?.error(`error on decoding message with event ${eventName}`, { error });
589
589
  }
590
590
  }
591
591
  /**
@@ -614,26 +614,26 @@ export class Kafka {
614
614
  headers: {}
615
615
  };
616
616
  });
617
- for (const msg of messages) {
617
+ for (const msg of messages ?? []) {
618
618
  if (config[eventName]?.omittedFields) {
619
619
  const keys = config[eventName].omittedFields;
620
620
  this.omitFields(keys, msg, config[eventName].enableLogging);
621
621
  }
622
622
  }
623
- this.logger.debug(`Sending event ${eventName} to topic ${topicName}`, { messages });
623
+ this.logger?.debug(`Sending event ${eventName} to topic ${topicName}`, { messages });
624
624
  return await this.producer.send({
625
625
  messages: values
626
626
  }).then((data) => {
627
627
  for (let i = 0; i < messages.length; i++) {
628
628
  const msg = messages[i];
629
- this.logger.debug(`Sent event ${eventName} to topic ${topicName} at offset ${data.offsets[i].offset.toString(10)}`, msg);
629
+ this.logger?.debug(`Sent event ${eventName} to topic ${topicName} at offset ${data.offsets[i].offset.toString(10)}`, msg);
630
630
  }
631
631
  return data;
632
632
  });
633
633
  }
634
634
  catch (error) {
635
635
  const { message, details, stack } = error;
636
- this.logger.error(`Error on sending event ${eventName} to topic ${topicName}`, { message, details, stack });
636
+ this.logger?.error(`Error on sending event ${eventName} to topic ${topicName}`, { message, details, stack });
637
637
  throw error;
638
638
  }
639
639
  }
@@ -669,10 +669,7 @@ export class Kafka {
669
669
  * @return {Topic} Kafka topic
670
670
  */
671
671
  async topic(topicName, config) {
672
- if (this.topics[topicName]) {
673
- return this.topics[topicName];
674
- }
675
- this.topics[topicName] = new Topic(topicName, this, config);
672
+ this.topics[topicName] ??= new KafkaTopic(topicName, this, config);
676
673
  await this.topics[topicName].createIfNotExists();
677
674
  return this.topics[topicName];
678
675
  }
@@ -682,76 +679,94 @@ export class Kafka {
682
679
  * all consumers from topics are disconnected.
683
680
  */
684
681
  async stop() {
685
- this.logger.warn('Stopping Kafka. Ignore any following connection errors');
682
+ this.logger?.warn('Stopping Kafka. Ignore any following connection errors');
686
683
  const errors = [];
687
684
  if (this.producerConnected) {
688
685
  await this.producer.close().catch((err) => {
689
- this.logger.warn('Error occurred stopping Kafka producer:', err);
686
+ this.logger?.warn('Error occurred stopping Kafka producer:', err);
690
687
  errors.push(err);
691
688
  });
692
689
  }
693
690
  if (this.adminConnected) {
694
691
  await this.admin.close().catch((err) => {
695
- this.logger.warn('Error occurred stopping Kafka admin:', err);
692
+ this.logger?.warn('Error occurred stopping Kafka admin:', err);
696
693
  errors.push(err);
697
694
  });
698
695
  }
699
- const topicNames = keys(this.topics);
700
- for (let i = 0; i < topicNames.length; i += 1) {
701
- const topic = this.topics[topicNames[i]];
702
- const eventNames = topic.subscribed;
703
- for (let j = eventNames.length - 1; j >= 0; j -= 1) {
704
- const eventName = eventNames[j];
705
- // This closes both producer and consumer objects
706
- // via unsubscribe()
696
+ for (const topic of Object.values(this.topics)) {
697
+ for (const eventName of topic.subscribed?.reverse() ?? []) {
707
698
  await topic.removeAllListeners(eventName);
708
699
  }
709
700
  }
710
701
  if (errors.length > 0) {
711
- this.logger.error('Errors when stopping Kafka client:', errors);
702
+ this.logger?.error('Errors when stopping Kafka client:', errors);
712
703
  throw errors;
713
704
  }
714
705
  }
706
+ async delete(topics) {
707
+ try {
708
+ return await this.admin.deleteTopics({
709
+ topics,
710
+ });
711
+ }
712
+ finally {
713
+ for (const topic of topics) {
714
+ delete this.topics[topic];
715
+ }
716
+ }
717
+ }
718
+ async deleteAll() {
719
+ try {
720
+ return await this.admin.deleteTopics({
721
+ topics: Object.keys(this.topics),
722
+ });
723
+ }
724
+ finally {
725
+ for (const topic of Object.keys(this.topics)) {
726
+ delete this.topics[topic];
727
+ }
728
+ }
729
+ }
715
730
  async newConsumer(groupId) {
716
731
  const consumer = new Consumer({
717
732
  groupId: groupId,
718
733
  ...this.commonOptions
719
734
  });
720
735
  consumer.on('client:broker:connect', (msg) => {
721
- this.logger.info('Consumer is ready.', msg);
736
+ this.logger?.info('Consumer is ready.', msg);
722
737
  });
723
738
  consumer.on('client:broker:disconnect', (err) => {
724
- this.logger.warn('Consumer connection failed:', err);
739
+ this.logger?.warn('Consumer connection failed:', err);
725
740
  });
726
741
  consumer.on('client:broker:failed', (err) => {
727
- this.logger.warn('Consumer connection failed:', err);
742
+ this.logger?.warn('Consumer connection failed:', err);
728
743
  });
729
744
  consumer.on('client:broker:drain', (msg) => {
730
- this.logger.info('Consumer broker ready for requests:', msg);
745
+ this.logger?.info('Consumer broker ready for requests:', msg);
731
746
  });
732
747
  consumer.on('client:metadata', (msg) => {
733
- this.logger.silly('Consumer broker metadata:', msg);
748
+ this.logger?.silly('Consumer broker metadata:', msg);
734
749
  });
735
750
  consumer.on('client:close', (msg) => {
736
- this.logger.warn('Consumer client closed:', msg);
751
+ this.logger?.warn('Consumer client closed:', msg);
737
752
  });
738
753
  consumer.on('consumer:group:join', (msg) => {
739
- this.logger.info('Consumer joining group:', msg);
754
+ this.logger?.info('Consumer joining group:', msg);
740
755
  });
741
756
  consumer.on('consumer:group:leave', (msg) => {
742
- this.logger.info('Consumer leaving group:', msg);
757
+ this.logger?.info('Consumer leaving group:', msg);
743
758
  });
744
759
  consumer.on('consumer:group:rejoin', (msg) => {
745
- this.logger.warn('Consumer re-joining group:', msg);
760
+ this.logger?.warn('Consumer re-joining group:', msg);
746
761
  });
747
762
  consumer.on('consumer:group:rebalance', (msg) => {
748
- this.logger.warn('Consumer group rebalancing:', msg);
763
+ this.logger?.warn('Consumer group rebalancing:', msg);
749
764
  });
750
765
  consumer.on('consumer:heartbeat:cancel', (err) => {
751
- this.logger.warn('Consumer heartbeat cancelled:', err);
766
+ this.logger?.warn('Consumer heartbeat cancelled:', err);
752
767
  });
753
768
  consumer.on('consumer:heartbeat:error', (err) => {
754
- this.logger.error('Consumer heartbeat error:', err);
769
+ this.logger?.error('Consumer heartbeat error:', err);
755
770
  });
756
771
  return consumer;
757
772
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/events/provider/kafka/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/events/provider/kafka/index.ts"],"names":[],"mappings":"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"}