@rsdk/kafka.common 2.5.0 → 2.5.1

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/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.5.1](https://github.com/R-Vision/rsdk/compare/v2.5.0...v2.5.1) (2023-09-25)
7
+
8
+ ### Bug Fixes
9
+
10
+ * **kafka:** correctly logging and inifinity reconnect ([b558ce7](https://github.com/R-Vision/rsdk/commit/b558ce77fd76995eca01098d6f3c53c7f8317f6b))
11
+
6
12
  # [2.5.0](https://github.com/R-Vision/rsdk/compare/v2.4.4-next.0...v2.5.0) (2023-06-23)
7
13
 
8
14
  **Note:** Version bump only for package @rsdk/kafka.common
@@ -6,6 +6,7 @@ const core_1 = require("@rsdk/core");
6
6
  const logging_1 = require("@rsdk/logging");
7
7
  const kafkajs_1 = require("kafkajs");
8
8
  const create_logger_adapter_fn_1 = require("../create-logger-adapter.fn");
9
+ const retry_policy_1 = require("../retry-policy");
9
10
  const kafka_config_1 = require("./kafka.config");
10
11
  exports.KAFKA_CLIENT_INJECTION_TOKEN = Symbol('KafkaClient');
11
12
  exports.KAFKA_PRODUCER_INJECTION_TOKEN = Symbol('KafkaProducer');
@@ -22,6 +23,7 @@ exports.KafkaClient = {
22
23
  clientId: `${name}-${process.pid}`,
23
24
  brokers: config.brokers,
24
25
  logCreator: (0, create_logger_adapter_fn_1.createLoggerAdapter)(logger),
26
+ retry: retry_policy_1.retryPolicy,
25
27
  });
26
28
  },
27
29
  };
@@ -32,7 +34,7 @@ exports.KafkaProducer = {
32
34
  const producer = kafka.producer({
33
35
  allowAutoTopicCreation: false,
34
36
  createPartitioner: kafkajs_1.Partitioners.DefaultPartitioner,
35
- retry: { retries: 0 },
37
+ retry: { retries: 1 },
36
38
  });
37
39
  await producer.connect();
38
40
  return { ...producer, onModuleDestroy: () => producer.disconnect() };
@@ -1 +1 @@
1
- {"version":3,"file":"kafka.client.js","sourceRoot":"","sources":["../../src/client/kafka.client.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qCAAsC;AACtC,2CAA8C;AAE9C,qCAA8C;AAE9C,0EAAkE;AAElE,iDAA6C;AAEhC,QAAA,4BAA4B,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACrD,QAAA,8BAA8B,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAE/D,MAAM,WAAW,GAAG,GAAuB,EAAE,CAClD,IAAA,eAAM,EAAC,oCAA4B,CAAC,CAAC;AAD1B,QAAA,WAAW,eACe;AAChC,MAAM,mBAAmB,GAAG,GAAuB,EAAE,CAC1D,IAAA,eAAM,EAAC,sCAA8B,CAAC,CAAC;AAD5B,QAAA,mBAAmB,uBACS;AAE5B,QAAA,WAAW,GAAoB;IAC1C,MAAM,EAAE,CAAC,0BAAW,EAAE,eAAQ,CAAC;IAC/B,OAAO,EAAE,oCAA4B;IACrC,UAAU,CAAC,MAAmB,EAAE,IAAY;QAC1C,MAAM,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE3D,OAAO,IAAI,eAAK,CAAC;YACf,QAAQ,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,IAAA,8CAAmB,EAAC,MAAM,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEW,QAAA,aAAa,GAAoB;IAC5C,MAAM,EAAE,CAAC,oCAA4B,CAAC;IACtC,OAAO,EAAE,sCAA8B;IACvC,KAAK,CAAC,UAAU,CAAC,KAAY;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC9B,sBAAsB,EAAE,KAAK;YAC7B,iBAAiB,EAAE,sBAAY,CAAC,kBAAkB;YAClD,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;IACvE,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"kafka.client.js","sourceRoot":"","sources":["../../src/client/kafka.client.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qCAAsC;AACtC,2CAA8C;AAE9C,qCAA8C;AAE9C,0EAAkE;AAClE,kDAA8C;AAE9C,iDAA6C;AAEhC,QAAA,4BAA4B,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACrD,QAAA,8BAA8B,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAE/D,MAAM,WAAW,GAAG,GAAuB,EAAE,CAClD,IAAA,eAAM,EAAC,oCAA4B,CAAC,CAAC;AAD1B,QAAA,WAAW,eACe;AAChC,MAAM,mBAAmB,GAAG,GAAuB,EAAE,CAC1D,IAAA,eAAM,EAAC,sCAA8B,CAAC,CAAC;AAD5B,QAAA,mBAAmB,uBACS;AAE5B,QAAA,WAAW,GAAoB;IAC1C,MAAM,EAAE,CAAC,0BAAW,EAAE,eAAQ,CAAC;IAC/B,OAAO,EAAE,oCAA4B;IACrC,UAAU,CAAC,MAAmB,EAAE,IAAY;QAC1C,MAAM,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE3D,OAAO,IAAI,eAAK,CAAC;YACf,QAAQ,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,IAAA,8CAAmB,EAAC,MAAM,CAAC;YACvC,KAAK,EAAE,0BAAW;SACnB,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEW,QAAA,aAAa,GAAoB;IAC5C,MAAM,EAAE,CAAC,oCAA4B,CAAC;IACtC,OAAO,EAAE,sCAA8B;IACvC,KAAK,CAAC,UAAU,CAAC,KAAY;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC9B,sBAAsB,EAAE,KAAK;YAC7B,iBAAiB,EAAE,sBAAY,CAAC,kBAAkB;YAClD,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;IACvE,CAAC;CACF,CAAC"}
@@ -10,7 +10,9 @@ class KafkaHealthcheck {
10
10
  this.neededTopics = neededTopics;
11
11
  }
12
12
  async getMissingTopics() {
13
- const admin = this.kafkaClient.admin();
13
+ const admin = this.kafkaClient.admin({
14
+ retry: { retries: 1 },
15
+ });
14
16
  await admin.connect();
15
17
  const topics = await admin.listTopics();
16
18
  await admin.disconnect();
@@ -1 +1 @@
1
- {"version":3,"file":"kafka.healthcheck.js","sourceRoot":"","sources":["../../src/client/kafka.healthcheck.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AAGzC,MAAa,gBAAgB;IACN;IAA6B;IAAlD,YAAqB,WAAkB,EAAW,YAAsB;QAAnD,gBAAW,GAAX,WAAW,CAAO;QAAW,iBAAY,GAAZ,YAAY,CAAU;IAAG,CAAC;IAE5E,KAAK,CAAC,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEvC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEtB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QAExC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAC7B,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI;YACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,OAAO,kBAAW,CAAC,IAAI,CAAC;oBACtB,aAAa;iBACd,CAAC,CAAC;aACJ;YACD,OAAO,kBAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3B;QAAC,OAAO,KAAc,EAAE;YACvB,OAAO,kBAAW,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AA/BD,4CA+BC"}
1
+ {"version":3,"file":"kafka.healthcheck.js","sourceRoot":"","sources":["../../src/client/kafka.healthcheck.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AAGzC,MAAa,gBAAgB;IACN;IAA6B;IAAlD,YAAqB,WAAkB,EAAW,YAAsB;QAAnD,gBAAW,GAAX,WAAW,CAAO;QAAW,iBAAY,GAAZ,YAAY,CAAU;IAAG,CAAC;IAE5E,KAAK,CAAC,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACnC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEtB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QAExC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAC7B,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI;YACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,OAAO,kBAAW,CAAC,IAAI,CAAC;oBACtB,aAAa;iBACd,CAAC,CAAC;aACJ;YACD,OAAO,kBAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3B;QAAC,OAAO,KAAc,EAAE;YACvB,OAAO,kBAAW,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AAjCD,4CAiCC"}
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLoggerAdapter = void 0;
4
4
  const common_1 = require("@rsdk/common");
5
5
  const kafkajs_1 = require("kafkajs");
6
- const createLoggerAdapter = (logger) => (level) => (entry) => {
6
+ const createLoggerAdapter = (logger) => (_) => (entry) => {
7
7
  const { message, ...log } = entry.log;
8
8
  const params = {
9
9
  namespace: entry.namespace,
10
10
  ...log,
11
11
  };
12
- switch (level) {
12
+ switch (entry.level) {
13
13
  case kafkajs_1.logLevel.DEBUG:
14
- return logger.debug(message, params);
14
+ return logger.trace(message, params);
15
15
  case kafkajs_1.logLevel.ERROR:
16
16
  return logger.error(message, params);
17
17
  case kafkajs_1.logLevel.INFO:
@@ -21,7 +21,7 @@ const createLoggerAdapter = (logger) => (level) => (entry) => {
21
21
  case kafkajs_1.logLevel.NOTHING:
22
22
  return;
23
23
  default:
24
- (0, common_1.unreachable)(level);
24
+ (0, common_1.unreachable)(entry.level);
25
25
  }
26
26
  };
27
27
  exports.createLoggerAdapter = createLoggerAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"create-logger-adapter.fn.js","sourceRoot":"","sources":["../src/create-logger-adapter.fn.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAG3C,qCAAmC;AAE5B,MAAM,mBAAmB,GAC9B,CAAC,MAAe,EAAc,EAAE,CAChC,CAAC,KAAe,EAAE,EAAE,CACpB,CAAC,KAAe,EAAE,EAAE;IAClB,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC;IACtC,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,GAAG,GAAG;KACP,CAAC;IAEF,QAAQ,KAAK,EAAE;QACb,KAAK,kBAAQ,CAAC,KAAK;YACjB,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,kBAAQ,CAAC,KAAK;YACjB,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,kBAAQ,CAAC,IAAI;YAChB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,kBAAQ,CAAC,IAAI;YAChB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,kBAAQ,CAAC,OAAO;YACnB,OAAO;QACT;YACE,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;KACtB;AACH,CAAC,CAAC;AAxBS,QAAA,mBAAmB,uBAwB5B"}
1
+ {"version":3,"file":"create-logger-adapter.fn.js","sourceRoot":"","sources":["../src/create-logger-adapter.fn.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAG3C,qCAAmC;AAE5B,MAAM,mBAAmB,GAC9B,CAAC,MAAe,EAAc,EAAE,CAChC,CAAC,CAAW,EAAE,EAAE,CAChB,CAAC,KAAe,EAAE,EAAE;IAClB,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC;IACtC,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,GAAG,GAAG;KACP,CAAC;IAEF,QAAQ,KAAK,CAAC,KAAK,EAAE;QACnB,KAAK,kBAAQ,CAAC,KAAK;YACjB,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,kBAAQ,CAAC,KAAK;YACjB,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,kBAAQ,CAAC,IAAI;YAChB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,kBAAQ,CAAC,IAAI;YAChB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,kBAAQ,CAAC,OAAO;YACnB,OAAO;QACT;YACE,IAAA,oBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAxBS,QAAA,mBAAmB,uBAwB5B"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { retryPolicy } from './retry-policy';
1
2
  export { KAFKA_PRODUCER_INJECTION_TOKEN, KAFKA_CLIENT_INJECTION_TOKEN, } from './client/kafka.client';
2
3
  export { KafkaClientModule } from './client/kafka-client.module';
3
4
  export { KafkaConfig } from './client/kafka.config';
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KafkaHealthcheck = exports.isEventType = exports.getTopicName = exports.createLoggerAdapter = exports.ServerKafkaExceptionFactory = exports.KafkaTopicType = exports.KAFKA_TOPIC_RSDK_METADATA_SCOPE = exports.KafkaMetadataProvider = exports.KafkaMetadataModule = exports.KafkaConfig = exports.KafkaClientModule = exports.KAFKA_CLIENT_INJECTION_TOKEN = exports.KAFKA_PRODUCER_INJECTION_TOKEN = void 0;
3
+ exports.KafkaHealthcheck = exports.isEventType = exports.getTopicName = exports.createLoggerAdapter = exports.ServerKafkaExceptionFactory = exports.KafkaTopicType = exports.KAFKA_TOPIC_RSDK_METADATA_SCOPE = exports.KafkaMetadataProvider = exports.KafkaMetadataModule = exports.KafkaConfig = exports.KafkaClientModule = exports.KAFKA_CLIENT_INJECTION_TOKEN = exports.KAFKA_PRODUCER_INJECTION_TOKEN = exports.retryPolicy = void 0;
4
+ var retry_policy_1 = require("./retry-policy");
5
+ Object.defineProperty(exports, "retryPolicy", { enumerable: true, get: function () { return retry_policy_1.retryPolicy; } });
4
6
  var kafka_client_1 = require("./client/kafka.client");
5
7
  Object.defineProperty(exports, "KAFKA_PRODUCER_INJECTION_TOKEN", { enumerable: true, get: function () { return kafka_client_1.KAFKA_PRODUCER_INJECTION_TOKEN; } });
6
8
  Object.defineProperty(exports, "KAFKA_CLIENT_INJECTION_TOKEN", { enumerable: true, get: function () { return kafka_client_1.KAFKA_CLIENT_INJECTION_TOKEN; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAG+B;AAF7B,8HAAA,8BAA8B,OAAA;AAC9B,4HAAA,4BAA4B,OAAA;AAG9B,oEAAiE;AAAxD,wHAAA,iBAAiB,OAAA;AAE1B,sDAAoD;AAA3C,2GAAA,WAAW,OAAA;AAEpB,0EAAuE;AAA9D,4HAAA,mBAAmB,OAAA;AAE5B,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAC9B,4DAImC;AAHjC,iIAAA,+BAA+B,OAAA;AAE/B,gHAAA,cAAc,OAAA;AAGhB,yCAA0D;AAAjD,wHAAA,2BAA2B,OAAA;AAEpC,uEAAiE;AAAxD,+HAAA,mBAAmB,OAAA;AAE5B,2CAAoE;AAA3D,0GAAA,YAAY,OAAA;AAAE,yGAAA,WAAW,OAAA;AAElC,gEAA8D;AAArD,qHAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,sDAG+B;AAF7B,8HAAA,8BAA8B,OAAA;AAC9B,4HAAA,4BAA4B,OAAA;AAG9B,oEAAiE;AAAxD,wHAAA,iBAAiB,OAAA;AAE1B,sDAAoD;AAA3C,2GAAA,WAAW,OAAA;AAEpB,0EAAuE;AAA9D,4HAAA,mBAAmB,OAAA;AAE5B,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAC9B,4DAImC;AAHjC,iIAAA,+BAA+B,OAAA;AAE/B,gHAAA,cAAc,OAAA;AAGhB,yCAA0D;AAAjD,wHAAA,2BAA2B,OAAA;AAEpC,uEAAiE;AAAxD,+HAAA,mBAAmB,OAAA;AAE5B,2CAAoE;AAA3D,0GAAA,YAAY,OAAA;AAAE,yGAAA,WAAW,OAAA;AAElC,gEAA8D;AAArD,qHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,6 @@
1
+ export declare const retryPolicy: {
2
+ maxRetryTime: number;
3
+ retries: number;
4
+ factor: number;
5
+ multiplier: number;
6
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retryPolicy = void 0;
4
+ exports.retryPolicy = {
5
+ maxRetryTime: 1e3,
6
+ retries: Number.POSITIVE_INFINITY,
7
+ factor: 0,
8
+ multiplier: 10,
9
+ };
10
+ //# sourceMappingURL=retry-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-policy.js","sourceRoot":"","sources":["../src/retry-policy.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,YAAY,EAAE,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC,iBAAiB;IACjC,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,EAAE;CACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdk/kafka.common",
3
- "version": "2.5.0",
3
+ "version": "2.5.1",
4
4
  "description": "Common functionality for kafka consumers and producers",
5
5
  "license": "Apache License 2.0",
6
6
  "publishConfig": {
@@ -14,9 +14,9 @@
14
14
  "@nestjs/common": "^9.0.0",
15
15
  "@nestjs/microservices": "^9.0.0",
16
16
  "@rsdk/common": "^2.4.2",
17
- "@rsdk/core": "^2.5.0",
18
- "@rsdk/logging": "^2.4.2",
19
- "@rsdk/metadata": "^2.4.2",
17
+ "@rsdk/core": "^2.5.1",
18
+ "@rsdk/logging": "^2.5.1",
19
+ "@rsdk/metadata": "^2.5.1",
20
20
  "kafkajs": "^2.2.4",
21
21
  "lodash": "^4.17.21",
22
22
  "rxjs": "^7.0.0"
@@ -24,5 +24,5 @@
24
24
  "dependencies": {
25
25
  "protobufjs": "^7.2.3"
26
26
  },
27
- "gitHead": "da4287a3aff2940920e85074296908adf291d96f"
27
+ "gitHead": "8762f61fce4c854db863ef204d245d1f69d51655"
28
28
  }
@@ -6,6 +6,7 @@ import type { Producer } from 'kafkajs';
6
6
  import { Kafka, Partitioners } from 'kafkajs';
7
7
 
8
8
  import { createLoggerAdapter } from '../create-logger-adapter.fn';
9
+ import { retryPolicy } from '../retry-policy';
9
10
 
10
11
  import { KafkaConfig } from './kafka.config';
11
12
 
@@ -27,6 +28,7 @@ export const KafkaClient: FactoryProvider = {
27
28
  clientId: `${name}-${process.pid}`,
28
29
  brokers: config.brokers,
29
30
  logCreator: createLoggerAdapter(logger),
31
+ retry: retryPolicy,
30
32
  });
31
33
  },
32
34
  };
@@ -38,7 +40,7 @@ export const KafkaProducer: FactoryProvider = {
38
40
  const producer = kafka.producer({
39
41
  allowAutoTopicCreation: false,
40
42
  createPartitioner: Partitioners.DefaultPartitioner,
41
- retry: { retries: 0 },
43
+ retry: { retries: 1 },
42
44
  });
43
45
 
44
46
  await producer.connect();
@@ -5,7 +5,9 @@ export class KafkaHealthcheck {
5
5
  constructor(readonly kafkaClient: Kafka, readonly neededTopics: string[]) {}
6
6
 
7
7
  async getMissingTopics(): Promise<string[]> {
8
- const admin = this.kafkaClient.admin();
8
+ const admin = this.kafkaClient.admin({
9
+ retry: { retries: 1 },
10
+ });
9
11
 
10
12
  await admin.connect();
11
13
 
@@ -5,7 +5,7 @@ import { logLevel } from 'kafkajs';
5
5
 
6
6
  export const createLoggerAdapter =
7
7
  (logger: ILogger): logCreator =>
8
- (level: logLevel) =>
8
+ (_: logLevel) =>
9
9
  (entry: LogEntry) => {
10
10
  const { message, ...log } = entry.log;
11
11
  const params = {
@@ -13,9 +13,9 @@ export const createLoggerAdapter =
13
13
  ...log,
14
14
  };
15
15
 
16
- switch (level) {
16
+ switch (entry.level) {
17
17
  case logLevel.DEBUG:
18
- return logger.debug(message, params);
18
+ return logger.trace(message, params);
19
19
  case logLevel.ERROR:
20
20
  return logger.error(message, params);
21
21
  case logLevel.INFO:
@@ -25,6 +25,6 @@ export const createLoggerAdapter =
25
25
  case logLevel.NOTHING:
26
26
  return;
27
27
  default:
28
- unreachable(level);
28
+ unreachable(entry.level);
29
29
  }
30
30
  };
package/src/index.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export { retryPolicy } from './retry-policy';
2
+
1
3
  export {
2
4
  KAFKA_PRODUCER_INJECTION_TOKEN,
3
5
  KAFKA_CLIENT_INJECTION_TOKEN,
@@ -0,0 +1,6 @@
1
+ export const retryPolicy = {
2
+ maxRetryTime: 1e3,
3
+ retries: Number.POSITIVE_INFINITY,
4
+ factor: 0,
5
+ multiplier: 10,
6
+ };