atomic-queues 2.3.0 → 3.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 (204) hide show
  1. package/README.md +297 -382
  2. package/dist/cli/generators/classes.d.ts +1 -1
  3. package/dist/cli/generators/json-schema.d.ts +1 -1
  4. package/dist/cli/generators/typescript.d.ts +1 -1
  5. package/dist/cli/index.js +147 -5
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cluster/cluster-discovery.service.d.ts +91 -0
  8. package/dist/cluster/cluster-discovery.service.d.ts.map +1 -0
  9. package/dist/cluster/cluster-discovery.service.js +423 -0
  10. package/dist/cluster/cluster-discovery.service.js.map +1 -0
  11. package/dist/cluster/grpc-peer-monitor.service.d.ts +31 -0
  12. package/dist/cluster/grpc-peer-monitor.service.d.ts.map +1 -0
  13. package/dist/cluster/grpc-peer-monitor.service.js +192 -0
  14. package/dist/cluster/grpc-peer-monitor.service.js.map +1 -0
  15. package/dist/cluster/index.d.ts +7 -0
  16. package/dist/cluster/index.d.ts.map +1 -0
  17. package/dist/cluster/index.js +23 -0
  18. package/dist/cluster/index.js.map +1 -0
  19. package/dist/cluster/leader-election.service.d.ts +38 -0
  20. package/dist/cluster/leader-election.service.d.ts.map +1 -0
  21. package/dist/cluster/leader-election.service.js +184 -0
  22. package/dist/cluster/leader-election.service.js.map +1 -0
  23. package/dist/cluster/master-coordinator.d.ts +50 -0
  24. package/dist/cluster/master-coordinator.d.ts.map +1 -0
  25. package/dist/cluster/master-coordinator.js +307 -0
  26. package/dist/cluster/master-coordinator.js.map +1 -0
  27. package/dist/cluster/redis-health-monitor.service.d.ts +23 -0
  28. package/dist/cluster/redis-health-monitor.service.d.ts.map +1 -0
  29. package/dist/cluster/redis-health-monitor.service.js +100 -0
  30. package/dist/cluster/redis-health-monitor.service.js.map +1 -0
  31. package/dist/cluster/server-ring.service.d.ts +48 -0
  32. package/dist/cluster/server-ring.service.d.ts.map +1 -0
  33. package/dist/cluster/server-ring.service.js +136 -0
  34. package/dist/cluster/server-ring.service.js.map +1 -0
  35. package/dist/decorators/entity.decorators.d.ts +16 -24
  36. package/dist/decorators/entity.decorators.d.ts.map +1 -1
  37. package/dist/decorators/entity.decorators.js +0 -39
  38. package/dist/decorators/entity.decorators.js.map +1 -1
  39. package/dist/decorators/interfaces.d.ts +10 -10
  40. package/dist/decorators/interfaces.d.ts.map +1 -1
  41. package/dist/decorators/job.decorators.d.ts +4 -52
  42. package/dist/decorators/job.decorators.d.ts.map +1 -1
  43. package/dist/decorators/job.decorators.js +6 -54
  44. package/dist/decorators/job.decorators.js.map +1 -1
  45. package/dist/decorators/metadata-readers.d.ts +4 -2
  46. package/dist/decorators/metadata-readers.d.ts.map +1 -1
  47. package/dist/decorators/metadata-readers.js +2 -0
  48. package/dist/decorators/metadata-readers.js.map +1 -1
  49. package/dist/decorators/schema.decorators.d.ts +1 -1
  50. package/dist/decorators/schema.decorators.d.ts.map +1 -1
  51. package/dist/decorators/schema.decorators.js.map +1 -1
  52. package/dist/decorators/utils.d.ts +1 -1
  53. package/dist/decorators/utils.d.ts.map +1 -1
  54. package/dist/decorators/utils.js +5 -1
  55. package/dist/decorators/utils.js.map +1 -1
  56. package/dist/domain/interfaces/config.interfaces.d.ts +92 -29
  57. package/dist/domain/interfaces/config.interfaces.d.ts.map +1 -1
  58. package/dist/domain/interfaces/index.d.ts +1 -0
  59. package/dist/domain/interfaces/index.d.ts.map +1 -1
  60. package/dist/domain/interfaces/index.js +1 -0
  61. package/dist/domain/interfaces/index.js.map +1 -1
  62. package/dist/{services/registry → domain/interfaces}/registry.types.d.ts.map +1 -1
  63. package/dist/domain/interfaces/registry.types.js.map +1 -0
  64. package/dist/grpc/grpc-client-pool.service.d.ts +71 -0
  65. package/dist/grpc/grpc-client-pool.service.d.ts.map +1 -0
  66. package/dist/grpc/grpc-client-pool.service.js +307 -0
  67. package/dist/grpc/grpc-client-pool.service.js.map +1 -0
  68. package/dist/grpc/grpc-server.service.d.ts +47 -0
  69. package/dist/grpc/grpc-server.service.d.ts.map +1 -0
  70. package/dist/grpc/grpc-server.service.js +494 -0
  71. package/dist/grpc/grpc-server.service.js.map +1 -0
  72. package/dist/grpc/index.d.ts +3 -0
  73. package/dist/grpc/index.d.ts.map +1 -0
  74. package/dist/{services/executor-pool → grpc}/index.js +2 -1
  75. package/dist/grpc/index.js.map +1 -0
  76. package/dist/index.d.ts +4 -0
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +4 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/module/atomic-queues.module.d.ts +1 -0
  81. package/dist/module/atomic-queues.module.d.ts.map +1 -1
  82. package/dist/module/atomic-queues.module.js +59 -10
  83. package/dist/module/atomic-queues.module.js.map +1 -1
  84. package/dist/services/command-discovery/command-discovery.service.js +2 -2
  85. package/dist/services/command-discovery/command-discovery.service.js.map +1 -1
  86. package/dist/services/index.d.ts +2 -8
  87. package/dist/services/index.d.ts.map +1 -1
  88. package/dist/services/index.js +2 -8
  89. package/dist/services/index.js.map +1 -1
  90. package/dist/services/message-router/index.d.ts +2 -0
  91. package/dist/services/message-router/index.d.ts.map +1 -0
  92. package/dist/services/{actor-system → message-router}/index.js +1 -1
  93. package/dist/services/message-router/index.js.map +1 -0
  94. package/dist/services/message-router/message-router.service.d.ts +53 -0
  95. package/dist/services/message-router/message-router.service.d.ts.map +1 -0
  96. package/dist/services/message-router/message-router.service.js +519 -0
  97. package/dist/services/message-router/message-router.service.js.map +1 -0
  98. package/dist/services/queue-bus/cluster-contracts.d.ts +1 -1
  99. package/dist/services/queue-bus/cluster-contracts.d.ts.map +1 -1
  100. package/dist/services/queue-bus/cluster-contracts.js.map +1 -1
  101. package/dist/services/queue-bus/queue-bus.service.d.ts +3 -21
  102. package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -1
  103. package/dist/services/queue-bus/queue-bus.service.js +15 -119
  104. package/dist/services/queue-bus/queue-bus.service.js.map +1 -1
  105. package/dist/utils/id.utils.d.ts +3 -0
  106. package/dist/utils/id.utils.d.ts.map +1 -0
  107. package/dist/utils/id.utils.js +14 -0
  108. package/dist/utils/id.utils.js.map +1 -0
  109. package/dist/utils/index.d.ts +1 -0
  110. package/dist/utils/index.d.ts.map +1 -1
  111. package/dist/utils/index.js +1 -0
  112. package/dist/utils/index.js.map +1 -1
  113. package/dist/wal/index.d.ts +4 -0
  114. package/dist/wal/index.d.ts.map +1 -0
  115. package/dist/{services/gate → wal}/index.js +3 -1
  116. package/dist/wal/index.js.map +1 -0
  117. package/dist/wal/wal.scripts.d.ts +51 -0
  118. package/dist/wal/wal.scripts.d.ts.map +1 -0
  119. package/dist/wal/wal.scripts.js +84 -0
  120. package/dist/wal/wal.scripts.js.map +1 -0
  121. package/dist/wal/wal.service.d.ts +46 -0
  122. package/dist/wal/wal.service.d.ts.map +1 -0
  123. package/dist/wal/wal.service.js +243 -0
  124. package/dist/wal/wal.service.js.map +1 -0
  125. package/dist/wal/wal.types.d.ts +23 -0
  126. package/dist/wal/wal.types.d.ts.map +1 -0
  127. package/dist/wal/wal.types.js +3 -0
  128. package/dist/wal/wal.types.js.map +1 -0
  129. package/dist/workers/consistent-hash.d.ts +97 -0
  130. package/dist/workers/consistent-hash.d.ts.map +1 -0
  131. package/dist/workers/consistent-hash.js +231 -0
  132. package/dist/workers/consistent-hash.js.map +1 -0
  133. package/dist/workers/entity-worker-manager.d.ts +35 -0
  134. package/dist/workers/entity-worker-manager.d.ts.map +1 -0
  135. package/dist/workers/entity-worker-manager.js +237 -0
  136. package/dist/workers/entity-worker-manager.js.map +1 -0
  137. package/dist/workers/entity-worker.d.ts +54 -0
  138. package/dist/workers/entity-worker.d.ts.map +1 -0
  139. package/dist/workers/entity-worker.js +142 -0
  140. package/dist/workers/entity-worker.js.map +1 -0
  141. package/dist/workers/index.d.ts +4 -0
  142. package/dist/workers/index.d.ts.map +1 -0
  143. package/dist/{services/log → workers}/index.js +3 -1
  144. package/dist/workers/index.js.map +1 -0
  145. package/package.json +17 -4
  146. package/dist/services/actor-system/actor-system.service.d.ts +0 -19
  147. package/dist/services/actor-system/actor-system.service.d.ts.map +0 -1
  148. package/dist/services/actor-system/actor-system.service.js +0 -86
  149. package/dist/services/actor-system/actor-system.service.js.map +0 -1
  150. package/dist/services/actor-system/index.d.ts +0 -2
  151. package/dist/services/actor-system/index.d.ts.map +0 -1
  152. package/dist/services/actor-system/index.js.map +0 -1
  153. package/dist/services/executor-pool/executor-pool.service.d.ts +0 -38
  154. package/dist/services/executor-pool/executor-pool.service.d.ts.map +0 -1
  155. package/dist/services/executor-pool/executor-pool.service.js +0 -166
  156. package/dist/services/executor-pool/executor-pool.service.js.map +0 -1
  157. package/dist/services/executor-pool/index.d.ts +0 -2
  158. package/dist/services/executor-pool/index.d.ts.map +0 -1
  159. package/dist/services/executor-pool/index.js.map +0 -1
  160. package/dist/services/gate/gate.service.d.ts +0 -17
  161. package/dist/services/gate/gate.service.d.ts.map +0 -1
  162. package/dist/services/gate/gate.service.js +0 -81
  163. package/dist/services/gate/gate.service.js.map +0 -1
  164. package/dist/services/gate/index.d.ts +0 -2
  165. package/dist/services/gate/index.d.ts.map +0 -1
  166. package/dist/services/gate/index.js.map +0 -1
  167. package/dist/services/log/index.d.ts +0 -2
  168. package/dist/services/log/index.d.ts.map +0 -1
  169. package/dist/services/log/index.js.map +0 -1
  170. package/dist/services/log/log.service.d.ts +0 -21
  171. package/dist/services/log/log.service.d.ts.map +0 -1
  172. package/dist/services/log/log.service.js +0 -92
  173. package/dist/services/log/log.service.js.map +0 -1
  174. package/dist/services/registry/index.d.ts +0 -4
  175. package/dist/services/registry/index.d.ts.map +0 -1
  176. package/dist/services/registry/index.js +0 -20
  177. package/dist/services/registry/index.js.map +0 -1
  178. package/dist/services/registry/registry.service.d.ts +0 -43
  179. package/dist/services/registry/registry.service.d.ts.map +0 -1
  180. package/dist/services/registry/registry.service.js +0 -367
  181. package/dist/services/registry/registry.service.js.map +0 -1
  182. package/dist/services/registry/registry.types.js.map +0 -1
  183. package/dist/services/registry/schema-converter.d.ts +0 -2
  184. package/dist/services/registry/schema-converter.d.ts.map +0 -1
  185. package/dist/services/registry/schema-converter.js +0 -27
  186. package/dist/services/registry/schema-converter.js.map +0 -1
  187. package/dist/services/result-collector/index.d.ts +0 -2
  188. package/dist/services/result-collector/index.d.ts.map +0 -1
  189. package/dist/services/result-collector/index.js +0 -18
  190. package/dist/services/result-collector/index.js.map +0 -1
  191. package/dist/services/result-collector/result-collector.service.d.ts +0 -17
  192. package/dist/services/result-collector/result-collector.service.d.ts.map +0 -1
  193. package/dist/services/result-collector/result-collector.service.js +0 -92
  194. package/dist/services/result-collector/result-collector.service.js.map +0 -1
  195. package/dist/services/scheduler/index.d.ts +0 -2
  196. package/dist/services/scheduler/index.d.ts.map +0 -1
  197. package/dist/services/scheduler/index.js +0 -18
  198. package/dist/services/scheduler/index.js.map +0 -1
  199. package/dist/services/scheduler/scheduler.service.d.ts +0 -17
  200. package/dist/services/scheduler/scheduler.service.d.ts.map +0 -1
  201. package/dist/services/scheduler/scheduler.service.js +0 -140
  202. package/dist/services/scheduler/scheduler.service.js.map +0 -1
  203. /package/dist/{services/registry → domain/interfaces}/registry.types.d.ts +0 -0
  204. /package/dist/{services/registry → domain/interfaces}/registry.types.js +0 -0
@@ -5,44 +5,14 @@ exports.JobQuery = JobQuery;
5
5
  const constants_1 = require("./constants");
6
6
  const utils_1 = require("./utils");
7
7
  /**
8
- * @JobCommand class decorator
9
- *
10
- * Marks a command class for automatic job routing. When a job with the
11
- * specified name arrives, the library will automatically instantiate
12
- * the command with entityId + job.data and execute it via CommandBus.
13
- *
14
- * This eliminates the need for @JobHandler boilerplate in processors.
15
- *
16
- * @example
17
- * ```typescript
18
- * // Option 1: Explicit job name
19
- * @JobCommand('make-bet')
20
- * export class MakeBetCommand {
21
- * constructor(
22
- * public readonly tableId: string, // entityId (first param)
23
- * public readonly playerId: string,
24
- * public readonly amount: number,
25
- * ) {}
26
- * }
27
- *
28
- * // Option 2: Auto-derived job name (MakeBetCommand -> 'make-bet')
29
- * @JobCommand()
30
- * export class MakeBetCommand { ... }
31
- *
32
- * // Option 3: With options
33
- * @JobCommand({
34
- * name: 'place-bet',
35
- * entityType: 'table',
36
- * entityIdParam: 'tableId', // or 0 for first param
37
- * })
38
- * export class PlaceBetCommand { ... }
39
- * ```
8
+ * @deprecated Use `@EntityType` + `@QueueEntityId` (or `@QueueEntity`) with standard `@nestjs/cqrs`
9
+ * `@CommandHandler` instead. This decorator will be removed in a future major version.
40
10
  */
41
11
  function JobCommand(options) {
42
12
  return (target) => {
43
13
  const opts = typeof options === 'string' ? { name: options } : options || {};
44
14
  const jobName = opts.name || (0, utils_1.deriveJobName)(target.name, 'Command');
45
- const paramNames = (0, utils_1.getConstructorParamNames)(target);
15
+ const paramNames = opts.params ?? (0, utils_1.getConstructorParamNames)(target);
46
16
  const metadata = {
47
17
  jobName,
48
18
  entityType: opts.entityType,
@@ -54,32 +24,14 @@ function JobCommand(options) {
54
24
  };
55
25
  }
56
26
  /**
57
- * @JobQuery class decorator
58
- *
59
- * Marks a query class for automatic job routing. When a job with the
60
- * specified name arrives, the library will automatically instantiate
61
- * the query with entityId + job.data and execute it via QueryBus.
62
- *
63
- * @example
64
- * ```typescript
65
- * @JobQuery('get-score')
66
- * export class GetScoreQuery {
67
- * constructor(
68
- * public readonly tableId: string,
69
- * public readonly seatIndex: number,
70
- * ) {}
71
- * }
72
- *
73
- * // Auto-derived: GetTableStateQuery -> 'get-table-state'
74
- * @JobQuery()
75
- * export class GetTableStateQuery { ... }
76
- * ```
27
+ * @deprecated Use `@EntityType` + `@QueueEntityId` (or `@QueueEntity`) with standard `@nestjs/cqrs`
28
+ * `@QueryHandler` instead. This decorator will be removed in a future major version.
77
29
  */
78
30
  function JobQuery(options) {
79
31
  return (target) => {
80
32
  const opts = typeof options === 'string' ? { name: options } : options || {};
81
33
  const jobName = opts.name || (0, utils_1.deriveJobName)(target.name, 'Query');
82
- const paramNames = (0, utils_1.getConstructorParamNames)(target);
34
+ const paramNames = opts.params ?? (0, utils_1.getConstructorParamNames)(target);
83
35
  const metadata = {
84
36
  jobName,
85
37
  entityType: opts.entityType,
@@ -1 +1 @@
1
- {"version":3,"file":"job.decorators.js","sourceRoot":"","sources":["../../src/decorators/job.decorators.ts"],"names":[],"mappings":";;AA2CA,gCAiBC;AAwBD,4BAiBC;AArGD,2CAAuE;AAOvE,mCAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,UAAU,CAAC,OAAoC;IAC7D,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAsB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAEhG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAA,gCAAwB,EAAC,MAAM,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAuB;YACnC,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;YACtC,WAAW,EAAE,MAAM;YACnB,UAAU;SACX,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,gCAAoB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,QAAQ,CAAC,OAAkC;IACzD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAoB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAE9F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAA,gCAAwB,EAAC,MAAM,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAqB;YACjC,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;YACtC,WAAW,EAAE,MAAM;YACnB,UAAU;SACX,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,8BAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"job.decorators.js","sourceRoot":"","sources":["../../src/decorators/job.decorators.ts"],"names":[],"mappings":";;AAaA,gCAiBC;AAMD,4BAiBC;AArDD,2CAAuE;AAOvE,mCAAkE;AAElE;;;GAGG;AACH,SAAgB,UAAU,CAAC,OAAoC;IAC7D,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAsB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAEhG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAA,gCAAwB,EAAC,MAAM,CAAC,CAAC;QAEnE,MAAM,QAAQ,GAAuB;YACnC,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;YACtC,WAAW,EAAE,MAAM;YACnB,UAAU;SACX,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,gCAAoB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,OAAkC;IACzD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAoB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAE9F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAA,gCAAwB,EAAC,MAAM,CAAC,CAAC;QAEnE,MAAM,QAAQ,GAAqB;YACjC,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;YACtC,WAAW,EAAE,MAAM;YACnB,UAAU;SACX,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,8BAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { JobCommandMetadata, JobQueryMetadata } from './interfaces';
2
2
  export declare function getEntityType(target: Function): string | undefined;
3
3
  export declare function getEntityIdProperty(target: Function): string | undefined;
4
+ /** @deprecated Part of the deprecated `@JobCommand` API. */
4
5
  export declare function getJobCommandMetadata(target: Function): JobCommandMetadata | undefined;
6
+ /** @deprecated Part of the deprecated `@JobQuery` API. */
5
7
  export declare function getJobQueryMetadata(target: Function): JobQueryMetadata | undefined;
6
- export declare function getSchemaMetadata(target: Function): any | undefined;
7
- export declare function getReplySchemaMetadata(target: Function): any | undefined;
8
+ export declare function getSchemaMetadata(target: Function): unknown | undefined;
9
+ export declare function getReplySchemaMetadata(target: Function): unknown | undefined;
8
10
  //# sourceMappingURL=metadata-readers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-readers.d.ts","sourceRoot":"","sources":["../../src/decorators/metadata-readers.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEpE,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAExE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,kBAAkB,GAAG,SAAS,CAEtF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAElF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG,GAAG,SAAS,CAEnE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG,GAAG,SAAS,CAExE"}
1
+ {"version":3,"file":"metadata-readers.d.ts","sourceRoot":"","sources":["../../src/decorators/metadata-readers.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEpE,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAExE;AAED,4DAA4D;AAC5D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,kBAAkB,GAAG,SAAS,CAEtF;AAED,0DAA0D;AAC1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAElF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAEvE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAE5E"}
@@ -13,9 +13,11 @@ function getEntityType(target) {
13
13
  function getEntityIdProperty(target) {
14
14
  return Reflect.getMetadata(constants_1.ENTITY_ID_METADATA, target);
15
15
  }
16
+ /** @deprecated Part of the deprecated `@JobCommand` API. */
16
17
  function getJobCommandMetadata(target) {
17
18
  return Reflect.getMetadata(constants_1.JOB_COMMAND_METADATA, target);
18
19
  }
20
+ /** @deprecated Part of the deprecated `@JobQuery` API. */
19
21
  function getJobQueryMetadata(target) {
20
22
  return Reflect.getMetadata(constants_1.JOB_QUERY_METADATA, target);
21
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-readers.js","sourceRoot":"","sources":["../../src/decorators/metadata-readers.ts"],"names":[],"mappings":";;AAUA,sCAEC;AAED,kDAEC;AAED,sDAEC;AAED,kDAEC;AAED,8CAEC;AAED,wDAEC;AAhCD,2CAOqB;AAGrB,SAAgB,aAAa,CAAC,MAAgB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAgB;IACpD,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAAgB;IAChD,OAAO,OAAO,CAAC,WAAW,CAAC,2BAAe,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAAgB;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,iCAAqB,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"metadata-readers.js","sourceRoot":"","sources":["../../src/decorators/metadata-readers.ts"],"names":[],"mappings":";;AAUA,sCAEC;AAED,kDAEC;AAGD,sDAEC;AAGD,kDAEC;AAED,8CAEC;AAED,wDAEC;AAlCD,2CAOqB;AAGrB,SAAgB,aAAa,CAAC,MAAgB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,4DAA4D;AAC5D,SAAgB,qBAAqB,CAAC,MAAgB;IACpD,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,0DAA0D;AAC1D,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAAgB;IAChD,OAAO,OAAO,CAAC,WAAW,CAAC,2BAAe,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAAgB;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,iCAAqB,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function Schema(zodSchema: any, replySchema?: any): ClassDecorator;
1
+ export declare function Schema(zodSchema: unknown, replySchema?: unknown): ClassDecorator;
2
2
  //# sourceMappingURL=schema.decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/schema.decorators.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,cAAc,CAOxE"}
1
+ {"version":3,"file":"schema.decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/schema.decorators.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,cAAc,CAOhF"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.decorators.js","sourceRoot":"","sources":["../../src/decorators/schema.decorators.ts"],"names":[],"mappings":";;AAEA,wBAOC;AATD,2CAAqE;AAErE,SAAgB,MAAM,CAAC,SAAc,EAAE,WAAiB;IACtD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,2BAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"schema.decorators.js","sourceRoot":"","sources":["../../src/decorators/schema.decorators.ts"],"names":[],"mappings":";;AAEA,wBAOC;AATD,2CAAqE;AAErE,SAAgB,MAAM,CAAC,SAAkB,EAAE,WAAqB;IAC9D,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,2BAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -9,7 +9,7 @@ export declare function getConstructorParamName(constructor: Function, index: nu
9
9
  export declare function splitParams(paramsStr: string): string[];
10
10
  /**
11
11
  * Helper to convert class name to kebab-case job name
12
- * MakeBetCommand -> make-bet
12
+ * PlaceOrderCommand -> place-order
13
13
  * ProcessPaymentCommand -> process-payment
14
14
  */
15
15
  export declare function deriveJobName(className: string, suffix: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/decorators/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAuBhG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAenE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/decorators/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAuBhG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAuBnE"}
@@ -61,7 +61,7 @@ function splitParams(paramsStr) {
61
61
  }
62
62
  /**
63
63
  * Helper to convert class name to kebab-case job name
64
- * MakeBetCommand -> make-bet
64
+ * PlaceOrderCommand -> place-order
65
65
  * ProcessPaymentCommand -> process-payment
66
66
  */
67
67
  function deriveJobName(className, suffix) {
@@ -88,6 +88,10 @@ function getConstructorParamNames(target) {
88
88
  if (name)
89
89
  names.push(name);
90
90
  }
91
+ if (names.length > 1 && names.every((n) => n.length <= 2)) {
92
+ throw new Error(`Constructor parameter names for ${target.name} appear minified (${names.join(', ')}). ` +
93
+ `Ensure constructor parameter names are not minified.`);
94
+ }
91
95
  return names;
92
96
  }
93
97
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/decorators/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/decorators/utils.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export interface IRedisConfig {
13
13
  * Retry policy configuration
14
14
  */
15
15
  export interface IRetryPolicy {
16
- /** Maximum number of attempts (default: 3) */
16
+ /** Maximum number of attempts (default: 1 — strictly once) */
17
17
  maxAttempts?: number;
18
18
  /** Backoff strategy */
19
19
  backoff?: 'fixed' | 'exponential';
@@ -28,57 +28,120 @@ export interface IRetryPolicy {
28
28
  export interface IEntityConfig {
29
29
  /** Default property name for entity ID extraction */
30
30
  defaultEntityId?: string;
31
- /** Gate TTL in seconds (default: 30) */
32
- gateTTL?: number;
33
31
  /** Retry policy for this entity type */
34
32
  retry?: IRetryPolicy;
35
33
  /** Default timeout in ms for enqueueAndWait on this entity type */
36
34
  replyTimeout?: number;
35
+ /** Behavior when a message is found in "dispatched" state on recovery */
36
+ onInterrupt?: 'dead-letter' | 'retry';
37
+ /** Idle timeout in ms before worker teardown (default: 30000) */
38
+ workerIdleTimeout?: number;
39
+ /** Max pending messages per entity worker (0 = unbounded, default: 0) */
40
+ workerMaxQueueDepth?: number;
37
41
  }
38
42
  /**
39
- * Executor pool configuration
43
+ * gRPC RPC deadline configuration (all values in milliseconds)
40
44
  */
41
- export interface IExecutorConfig {
42
- /** Number of concurrent executors (default: 1) */
43
- poolSize?: number;
44
- /** Default gate TTL in seconds (default: 30) */
45
- gateTTL?: number;
46
- /** Gate refresh interval in ms (default: gateTTL * 500) */
47
- gateRefreshInterval?: number;
48
- /** Global default timeout in ms for enqueueAndWait (default: gateTTL * 2 * 1000) */
49
- defaultReplyTimeout?: number;
45
+ export interface IGrpcDeadlines {
46
+ /** Deadline for fire-and-forget RPCs: forward(), petition(), enqueueToWorker() (default: 1500) */
47
+ forwardMs?: number;
48
+ /** Deadline for ping() RPC (default: 1000) */
49
+ pingMs?: number;
50
+ /** Default deadline for AndWait server-side handlers when no per-entity replyTimeout is set (default: 60000) */
51
+ andWaitMs?: number;
52
+ /** Deadline for listWorkers() during master table rebuild (default: 1000) */
53
+ syncMs?: number;
54
+ /** Deadline for peer connectivity watch loop re-arm (default: 30000) */
55
+ connectivityWatchMs?: number;
50
56
  }
51
57
  /**
52
- * Distributed registry configuration (optional, for cross-service)
58
+ * gRPC inter-server communication configuration
53
59
  */
54
- export interface IRegistryConfig {
55
- /** Enable the distributed registry (default: false) */
60
+ export interface IGrpcConfig {
61
+ /** Enable gRPC transport (default: false) */
56
62
  enabled?: boolean;
57
- /** Service name for identification in the registry */
58
- serviceName?: string;
59
- /** Validate payload schemas on send (default: false) */
60
- schemaValidation?: boolean;
61
- /** Heartbeat interval in ms (default: 10000) */
62
- heartbeatInterval?: number;
63
- /** Registration TTL in seconds (default: 30) */
64
- registrationTTL?: number;
63
+ /** gRPC listen address (default: '0.0.0.0:50051') */
64
+ listenAddress?: string;
65
+ /** Advertised address for other servers (default: os.hostname() + ':50051') */
66
+ advertisedAddress?: string;
67
+ /** Unique server ID (default: auto-generated UUID) */
68
+ serverId?: string;
69
+ /** Replica group name identifies which replicas run the same code */
70
+ serviceGroup?: string;
71
+ /** TLS configuration */
72
+ tls?: {
73
+ certPath: string;
74
+ keyPath: string;
75
+ caPath?: string;
76
+ };
77
+ /** Max forwarding hops to prevent loops (default: 3) */
78
+ maxForwardHops?: number;
79
+ /** Heartbeat interval in ms (default: 400) */
80
+ heartbeatMs?: number;
81
+ /** Node considered dead after this many ms without heartbeat (default: 1500) */
82
+ nodeTTLMs?: number;
83
+ /** Leader lock TTL in ms (default: 2000) */
84
+ leaderTTLMs?: number;
85
+ /** Leader lock renewal interval in ms (default: 400) */
86
+ leaderRenewalMs?: number;
87
+ /** Leader acquisition poll interval in ms (default: 400) */
88
+ leaderAcquisitionMs?: number;
89
+ /** gRPC keepalive ping interval in ms (default: 10000, minimum enforced by grpc-js) */
90
+ keepaliveTimeMs?: number;
91
+ /** gRPC keepalive timeout in ms — connection dead if no response (default: 5000) */
92
+ keepaliveTimeoutMs?: number;
93
+ /** Enable gRPC peer connectivity monitoring for fast failure detection (default: true when grpc.enabled) */
94
+ peerMonitorEnabled?: boolean;
95
+ /** Debounce window in ms before declaring a peer suspected-dead (default: 500) */
96
+ peerSuspectDebounceMs?: number;
97
+ /** Redis PING health check interval in ms (default: 500) */
98
+ redisHealthCheckMs?: number;
99
+ /** Consecutive Redis PING failures before declaring degraded mode (default: 3) */
100
+ redisHealthFailureThreshold?: number;
101
+ /** Reconciliation interval in ms — how often to SCAN Redis for node changes (default: 2000) */
102
+ reconcileIntervalMs?: number;
103
+ /** Max concurrent petitions the master will process (default: 50, 0 = unbounded) */
104
+ maxConcurrentPetitions?: number;
105
+ /** Debounce window in ms for leader recomputation after ring changes (default: 800) */
106
+ leaderDebounceMs?: number;
107
+ /** RPC deadline overrides */
108
+ deadlines?: IGrpcDeadlines;
109
+ /** Circuit breaker: consecutive failures before opening circuit (default: 3) */
110
+ circuitBreakerFailureThreshold?: number;
111
+ /** Circuit breaker: cooldown in ms before half-open probe (default: 2000) */
112
+ circuitBreakerCooldownMs?: number;
65
113
  }
66
114
  /**
67
- * Main module configuration
115
+ * Write-ahead log configuration
116
+ */
117
+ export interface IWalConfig {
118
+ /** Enable WAL persistence (default: true) */
119
+ enabled?: boolean;
120
+ /** Cleanup batch interval in ms (default: 5000) */
121
+ cleanupInterval?: number;
122
+ /** Safety TTL for WAL entries in seconds (default: 86400 = 24h) */
123
+ entryTTL?: number;
124
+ }
125
+ /**
126
+ * Main module configuration — v3
68
127
  */
69
128
  export interface IAtomicQueuesModuleConfig {
70
129
  /** Redis connection configuration */
71
130
  redis: IRedisConfig;
72
- /** Executor pool configuration */
73
- executor?: IExecutorConfig;
74
131
  /** Default retry policy */
75
132
  retry?: IRetryPolicy;
76
133
  /** Per-entity-type overrides */
77
134
  entities?: Record<string, IEntityConfig>;
78
- /** Distributed registry (cross-service communication) */
79
- registry?: IRegistryConfig;
135
+ /** gRPC inter-server communication */
136
+ grpc?: IGrpcConfig;
137
+ /** Write-ahead log persistence */
138
+ wal?: IWalConfig;
80
139
  /** Prefix for all Redis keys (default: 'aq') */
81
140
  keyPrefix?: string;
141
+ /** Maximum total active workers across all entity types (default: 10000, 0 = unbounded) */
142
+ maxTotalWorkers?: number;
143
+ /** Maximum total queued messages across all workers (default: 100000, 0 = unbounded) */
144
+ maxTotalQueueDepth?: number;
82
145
  /** Enable verbose logging */
83
146
  verbose?: boolean;
84
147
  /** Auto-register commands from @nestjs/cqrs handlers (default: true) */
@@ -1 +1 @@
1
- {"version":3,"file":"config.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/config.interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,qCAAqC;IACrC,KAAK,EAAE,YAAY,CAAC;IAEpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEzC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC"}
1
+ {"version":3,"file":"config.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/config.interfaces.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export * from './job.interfaces';
3
3
  export * from './cqrs.interfaces';
4
4
  export * from './utility.types';
5
5
  export * from './reply.types';
6
+ export * from './registry.types';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
@@ -19,4 +19,5 @@ __exportStar(require("./job.interfaces"), exports);
19
19
  __exportStar(require("./cqrs.interfaces"), exports);
20
20
  __exportStar(require("./utility.types"), exports);
21
21
  __exportStar(require("./reply.types"), exports);
22
+ __exportStar(require("./registry.types"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,mDAAiC;AACjC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,mDAAiC;AACjC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAC9B,mDAAiC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.types.d.ts","sourceRoot":"","sources":["../../../src/services/registry/registry.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B"}
1
+ {"version":3,"file":"registry.types.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/registry.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.types.js","sourceRoot":"","sources":["../../../src/domain/interfaces/registry.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import { OnModuleInit, OnApplicationShutdown } from '@nestjs/common';
2
+ import { IAtomicQueuesModuleConfig, ISerializedMessage, IMessageRef } from '../domain';
3
+ /** Minimal shape of a gRPC client instance (from @grpc/grpc-js). */
4
+ interface GrpcCallOptions {
5
+ deadline?: Date;
6
+ }
7
+ interface GrpcClientInstance {
8
+ forward(envelope: Record<string, unknown>, options: GrpcCallOptions, callback: (err: Error | null, response: Record<string, unknown>) => void): void;
9
+ forwardAndWait(envelope: Record<string, unknown>): GrpcClientStream;
10
+ ping(request: Record<string, unknown>, options: GrpcCallOptions, callback: (err: Error | null, response: Record<string, unknown>) => void): void;
11
+ close(): void;
12
+ }
13
+ /** Minimal shape of a gRPC readable stream (from @grpc/grpc-js). */
14
+ interface GrpcClientStream {
15
+ on(event: 'data', listener: (response: Record<string, unknown>) => void): void;
16
+ on(event: 'error', listener: (err: Error) => void): void;
17
+ on(event: 'end', listener: () => void): void;
18
+ }
19
+ /**
20
+ * gRPC Client Pool — maintains connections to peer servers.
21
+ *
22
+ * Provides `forward()` and `forwardAndWait()` methods that the
23
+ * MessageRouter calls when an entity is owned by a remote server.
24
+ */
25
+ export declare class GrpcClientPool implements OnModuleInit, OnApplicationShutdown {
26
+ private readonly config;
27
+ private readonly logger;
28
+ private readonly clients;
29
+ private readonly circuitBreakers;
30
+ private readonly failureThreshold;
31
+ private readonly cooldownMs;
32
+ private grpcModule;
33
+ private protoDescriptor;
34
+ constructor(config: IAtomicQueuesModuleConfig);
35
+ onModuleInit(): Promise<void>;
36
+ onApplicationShutdown(): Promise<void>;
37
+ /**
38
+ * Ensure the gRPC module is loaded (lazy, for optional dependency).
39
+ */
40
+ private ensureLoaded;
41
+ /**
42
+ * Get or create a client connection to a peer server.
43
+ */
44
+ private checkCircuit;
45
+ recordSuccess(serverId: string): void;
46
+ recordFailure(serverId: string): void;
47
+ openCircuit(serverId: string): void;
48
+ closeCircuit(serverId: string): void;
49
+ getClient(serverId: string, address: string): Promise<GrpcClientInstance>;
50
+ /**
51
+ * Forward a message to a remote server (fire-and-forget).
52
+ */
53
+ forward(serverId: string, address: string, message: ISerializedMessage, originServerId: string, hops: number, senderEpoch?: number): Promise<IMessageRef>;
54
+ /**
55
+ * Forward a message to a remote server and wait for the result.
56
+ */
57
+ forwardAndWait<R = unknown>(serverId: string, address: string, message: ISerializedMessage, originServerId: string, hops: number, timeout: number, senderEpoch?: number): Promise<R>;
58
+ /**
59
+ * Ping a peer server.
60
+ */
61
+ ping(serverId: string, address: string): Promise<{
62
+ healthy: boolean;
63
+ queueDepth: number;
64
+ }>;
65
+ /**
66
+ * Remove a client connection.
67
+ */
68
+ removeClient(serverId: string): void;
69
+ }
70
+ export {};
71
+ //# sourceMappingURL=grpc-client-pool.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc-client-pool.service.d.ts","sourceRoot":"","sources":["../../src/grpc/grpc-client-pool.service.ts"],"names":[],"mappings":"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"}