atomic-queues 1.4.1 → 1.6.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 (229) hide show
  1. package/README.md +300 -283
  2. package/dist/decorators/constants.d.ts +17 -0
  3. package/dist/decorators/constants.d.ts.map +1 -0
  4. package/dist/decorators/constants.js +23 -0
  5. package/dist/decorators/constants.js.map +1 -0
  6. package/dist/decorators/entity.decorators.d.ts +88 -0
  7. package/dist/decorators/entity.decorators.d.ts.map +1 -0
  8. package/dist/decorators/entity.decorators.js +150 -0
  9. package/dist/decorators/entity.decorators.js.map +1 -0
  10. package/dist/decorators/index.d.ts +9 -1
  11. package/dist/decorators/index.d.ts.map +1 -1
  12. package/dist/decorators/index.js +9 -1
  13. package/dist/decorators/index.js.map +1 -1
  14. package/dist/decorators/interfaces.d.ts +130 -0
  15. package/dist/decorators/interfaces.d.ts.map +1 -0
  16. package/dist/decorators/interfaces.js +3 -0
  17. package/dist/decorators/interfaces.js.map +1 -0
  18. package/dist/decorators/job.decorators.d.ts +60 -0
  19. package/dist/decorators/job.decorators.d.ts.map +1 -0
  20. package/dist/decorators/job.decorators.js +97 -0
  21. package/dist/decorators/job.decorators.js.map +1 -0
  22. package/dist/decorators/legacy.decorators.d.ts +36 -0
  23. package/dist/decorators/legacy.decorators.d.ts.map +1 -0
  24. package/dist/decorators/legacy.decorators.js +61 -0
  25. package/dist/decorators/legacy.decorators.js.map +1 -0
  26. package/dist/decorators/metadata-readers.d.ts +31 -0
  27. package/dist/decorators/metadata-readers.d.ts.map +1 -0
  28. package/dist/decorators/metadata-readers.js +53 -0
  29. package/dist/decorators/metadata-readers.js.map +1 -0
  30. package/dist/decorators/registry.d.ts +2 -0
  31. package/dist/decorators/registry.d.ts.map +1 -0
  32. package/dist/decorators/registry.js +6 -0
  33. package/dist/decorators/registry.js.map +1 -0
  34. package/dist/decorators/scaler.decorators.d.ts +65 -0
  35. package/dist/decorators/scaler.decorators.d.ts.map +1 -0
  36. package/dist/decorators/scaler.decorators.js +103 -0
  37. package/dist/decorators/scaler.decorators.js.map +1 -0
  38. package/dist/decorators/type-guards.d.ts +18 -0
  39. package/dist/decorators/type-guards.d.ts.map +1 -0
  40. package/dist/decorators/type-guards.js +32 -0
  41. package/dist/decorators/type-guards.js.map +1 -0
  42. package/dist/decorators/utils.d.ts +20 -0
  43. package/dist/decorators/utils.d.ts.map +1 -0
  44. package/dist/decorators/utils.js +98 -0
  45. package/dist/decorators/utils.js.map +1 -0
  46. package/dist/decorators/worker.decorators.d.ts +58 -0
  47. package/dist/decorators/worker.decorators.d.ts.map +1 -0
  48. package/dist/decorators/worker.decorators.js +92 -0
  49. package/dist/decorators/worker.decorators.js.map +1 -0
  50. package/dist/domain/interfaces/config.interfaces.d.ts +188 -0
  51. package/dist/domain/interfaces/config.interfaces.d.ts.map +1 -0
  52. package/dist/domain/interfaces/config.interfaces.js +3 -0
  53. package/dist/domain/interfaces/config.interfaces.js.map +1 -0
  54. package/dist/domain/interfaces/cqrs.interfaces.d.ts +7 -0
  55. package/dist/domain/interfaces/cqrs.interfaces.d.ts.map +1 -0
  56. package/dist/domain/interfaces/cqrs.interfaces.js +3 -0
  57. package/dist/domain/interfaces/cqrs.interfaces.js.map +1 -0
  58. package/dist/domain/interfaces/event.interfaces.d.ts +71 -0
  59. package/dist/domain/interfaces/event.interfaces.d.ts.map +1 -0
  60. package/dist/domain/interfaces/event.interfaces.js +3 -0
  61. package/dist/domain/interfaces/event.interfaces.js.map +1 -0
  62. package/dist/domain/interfaces/index-tracking.interfaces.d.ts +69 -0
  63. package/dist/domain/interfaces/index-tracking.interfaces.d.ts.map +1 -0
  64. package/dist/domain/interfaces/index-tracking.interfaces.js +3 -0
  65. package/dist/domain/interfaces/index-tracking.interfaces.js.map +1 -0
  66. package/dist/domain/interfaces/index.d.ts +12 -0
  67. package/dist/domain/interfaces/index.d.ts.map +1 -0
  68. package/dist/domain/interfaces/index.js +28 -0
  69. package/dist/domain/interfaces/index.js.map +1 -0
  70. package/dist/domain/interfaces/job.interfaces.d.ts +76 -0
  71. package/dist/domain/interfaces/job.interfaces.d.ts.map +1 -0
  72. package/dist/domain/interfaces/job.interfaces.js +3 -0
  73. package/dist/domain/interfaces/job.interfaces.js.map +1 -0
  74. package/dist/domain/interfaces/lock.interfaces.d.ts +54 -0
  75. package/dist/domain/interfaces/lock.interfaces.d.ts.map +1 -0
  76. package/dist/domain/interfaces/lock.interfaces.js +3 -0
  77. package/dist/domain/interfaces/lock.interfaces.js.map +1 -0
  78. package/dist/domain/interfaces/process.interfaces.d.ts +44 -0
  79. package/dist/domain/interfaces/process.interfaces.d.ts.map +1 -0
  80. package/dist/domain/interfaces/process.interfaces.js +3 -0
  81. package/dist/domain/interfaces/process.interfaces.js.map +1 -0
  82. package/dist/domain/interfaces/queue.interfaces.d.ts +46 -0
  83. package/dist/domain/interfaces/queue.interfaces.d.ts.map +1 -0
  84. package/dist/domain/interfaces/queue.interfaces.js +3 -0
  85. package/dist/domain/interfaces/queue.interfaces.js.map +1 -0
  86. package/dist/domain/interfaces/scaling.interfaces.d.ts +62 -0
  87. package/dist/domain/interfaces/scaling.interfaces.d.ts.map +1 -0
  88. package/dist/domain/interfaces/scaling.interfaces.js +3 -0
  89. package/dist/domain/interfaces/scaling.interfaces.js.map +1 -0
  90. package/dist/domain/interfaces/utility.types.d.ts +15 -0
  91. package/dist/domain/interfaces/utility.types.d.ts.map +1 -0
  92. package/dist/domain/interfaces/utility.types.js +3 -0
  93. package/dist/domain/interfaces/utility.types.js.map +1 -0
  94. package/dist/domain/interfaces/worker.interfaces.d.ts +120 -0
  95. package/dist/domain/interfaces/worker.interfaces.d.ts.map +1 -0
  96. package/dist/domain/interfaces/worker.interfaces.js +3 -0
  97. package/dist/domain/interfaces/worker.interfaces.js.map +1 -0
  98. package/dist/module/atomic-queues.module.d.ts.map +1 -1
  99. package/dist/module/atomic-queues.module.js +5 -0
  100. package/dist/module/atomic-queues.module.js.map +1 -1
  101. package/dist/services/cron-manager/cron-manager.service.d.ts +5 -4
  102. package/dist/services/cron-manager/cron-manager.service.d.ts.map +1 -1
  103. package/dist/services/cron-manager/cron-manager.service.js +26 -57
  104. package/dist/services/cron-manager/cron-manager.service.js.map +1 -1
  105. package/dist/services/index-manager/index-manager.service.d.ts +0 -4
  106. package/dist/services/index-manager/index-manager.service.d.ts.map +1 -1
  107. package/dist/services/index-manager/index-manager.service.js +4 -16
  108. package/dist/services/index-manager/index-manager.service.js.map +1 -1
  109. package/dist/services/index.d.ts +1 -0
  110. package/dist/services/index.d.ts.map +1 -1
  111. package/dist/services/index.js +1 -0
  112. package/dist/services/index.js.map +1 -1
  113. package/dist/services/processor-discovery/decorator-discovery.service.d.ts +40 -0
  114. package/dist/services/processor-discovery/decorator-discovery.service.d.ts.map +1 -0
  115. package/dist/services/processor-discovery/decorator-discovery.service.js +191 -0
  116. package/dist/services/processor-discovery/decorator-discovery.service.js.map +1 -0
  117. package/dist/services/processor-discovery/index.d.ts +4 -0
  118. package/dist/services/processor-discovery/index.d.ts.map +1 -1
  119. package/dist/services/processor-discovery/index.js +4 -0
  120. package/dist/services/processor-discovery/index.js.map +1 -1
  121. package/dist/services/processor-discovery/processor-discovery.service.d.ts +30 -138
  122. package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +1 -1
  123. package/dist/services/processor-discovery/processor-discovery.service.js +125 -502
  124. package/dist/services/processor-discovery/processor-discovery.service.js.map +1 -1
  125. package/dist/services/processor-discovery/processor-registry.d.ts +58 -0
  126. package/dist/services/processor-discovery/processor-registry.d.ts.map +1 -0
  127. package/dist/services/processor-discovery/processor-registry.js +74 -0
  128. package/dist/services/processor-discovery/processor-registry.js.map +1 -0
  129. package/dist/services/processor-discovery/scaling-registration.service.d.ts +60 -0
  130. package/dist/services/processor-discovery/scaling-registration.service.d.ts.map +1 -0
  131. package/dist/services/processor-discovery/scaling-registration.service.js +261 -0
  132. package/dist/services/processor-discovery/scaling-registration.service.js.map +1 -0
  133. package/dist/services/processor-discovery/worker-factory.service.d.ts +54 -0
  134. package/dist/services/processor-discovery/worker-factory.service.d.ts.map +1 -0
  135. package/dist/services/processor-discovery/worker-factory.service.js +185 -0
  136. package/dist/services/processor-discovery/worker-factory.service.js.map +1 -0
  137. package/dist/services/queue-bus/entity-target.d.ts +58 -0
  138. package/dist/services/queue-bus/entity-target.d.ts.map +1 -0
  139. package/dist/services/queue-bus/entity-target.js +109 -0
  140. package/dist/services/queue-bus/entity-target.js.map +1 -0
  141. package/dist/services/queue-bus/index.d.ts +4 -0
  142. package/dist/services/queue-bus/index.d.ts.map +1 -1
  143. package/dist/services/queue-bus/index.js +4 -0
  144. package/dist/services/queue-bus/index.js.map +1 -1
  145. package/dist/services/queue-bus/queue-bus.service.d.ts +9 -145
  146. package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -1
  147. package/dist/services/queue-bus/queue-bus.service.js +23 -311
  148. package/dist/services/queue-bus/queue-bus.service.js.map +1 -1
  149. package/dist/services/queue-bus/queue-bus.types.d.ts +40 -0
  150. package/dist/services/queue-bus/queue-bus.types.d.ts.map +1 -0
  151. package/dist/services/queue-bus/queue-bus.types.js +3 -0
  152. package/dist/services/queue-bus/queue-bus.types.js.map +1 -0
  153. package/dist/services/queue-bus/queue-bus.utils.d.ts +34 -0
  154. package/dist/services/queue-bus/queue-bus.utils.d.ts.map +1 -0
  155. package/dist/services/queue-bus/queue-bus.utils.js +82 -0
  156. package/dist/services/queue-bus/queue-bus.utils.js.map +1 -0
  157. package/dist/services/queue-bus/queue-target.d.ts +61 -0
  158. package/dist/services/queue-bus/queue-target.d.ts.map +1 -0
  159. package/dist/services/queue-bus/queue-target.js +123 -0
  160. package/dist/services/queue-bus/queue-target.js.map +1 -0
  161. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +23 -6
  162. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +1 -1
  163. package/dist/services/queue-events-manager/queue-events-manager.service.js +69 -37
  164. package/dist/services/queue-events-manager/queue-events-manager.service.js.map +1 -1
  165. package/dist/services/resource-lock/resource-lock.service.d.ts +0 -4
  166. package/dist/services/resource-lock/resource-lock.service.d.ts.map +1 -1
  167. package/dist/services/resource-lock/resource-lock.service.js +4 -16
  168. package/dist/services/resource-lock/resource-lock.service.js.map +1 -1
  169. package/dist/services/service-queue/index.d.ts +1 -0
  170. package/dist/services/service-queue/index.d.ts.map +1 -1
  171. package/dist/services/service-queue/index.js +1 -0
  172. package/dist/services/service-queue/index.js.map +1 -1
  173. package/dist/services/service-queue/service-queue.service.d.ts +2 -35
  174. package/dist/services/service-queue/service-queue.service.d.ts.map +1 -1
  175. package/dist/services/service-queue/service-queue.service.js +17 -49
  176. package/dist/services/service-queue/service-queue.service.js.map +1 -1
  177. package/dist/services/service-queue/service-queue.types.d.ts +32 -0
  178. package/dist/services/service-queue/service-queue.types.d.ts.map +1 -0
  179. package/dist/services/service-queue/service-queue.types.js +27 -0
  180. package/dist/services/service-queue/service-queue.types.js.map +1 -0
  181. package/dist/services/spawn-queue/index.d.ts +2 -0
  182. package/dist/services/spawn-queue/index.d.ts.map +1 -0
  183. package/dist/services/spawn-queue/index.js +18 -0
  184. package/dist/services/spawn-queue/index.js.map +1 -0
  185. package/dist/services/spawn-queue/spawn-queue.service.d.ts +119 -0
  186. package/dist/services/spawn-queue/spawn-queue.service.d.ts.map +1 -0
  187. package/dist/services/spawn-queue/spawn-queue.service.js +273 -0
  188. package/dist/services/spawn-queue/spawn-queue.service.js.map +1 -0
  189. package/dist/services/worker-manager/worker-manager.service.d.ts +18 -3
  190. package/dist/services/worker-manager/worker-manager.service.d.ts.map +1 -1
  191. package/dist/services/worker-manager/worker-manager.service.js +46 -21
  192. package/dist/services/worker-manager/worker-manager.service.js.map +1 -1
  193. package/dist/utils/async.utils.d.ts +51 -0
  194. package/dist/utils/async.utils.d.ts.map +1 -0
  195. package/dist/utils/async.utils.js +87 -0
  196. package/dist/utils/async.utils.js.map +1 -0
  197. package/dist/utils/helpers.d.ts +4 -123
  198. package/dist/utils/helpers.d.ts.map +1 -1
  199. package/dist/utils/helpers.js +18 -226
  200. package/dist/utils/helpers.js.map +1 -1
  201. package/dist/utils/index.d.ts +1 -0
  202. package/dist/utils/index.d.ts.map +1 -1
  203. package/dist/utils/index.js +1 -0
  204. package/dist/utils/index.js.map +1 -1
  205. package/dist/utils/job.utils.d.ts +50 -0
  206. package/dist/utils/job.utils.d.ts.map +1 -0
  207. package/dist/utils/job.utils.js +89 -0
  208. package/dist/utils/job.utils.js.map +1 -0
  209. package/dist/utils/naming.utils.d.ts +21 -0
  210. package/dist/utils/naming.utils.d.ts.map +1 -0
  211. package/dist/utils/naming.utils.js +38 -0
  212. package/dist/utils/naming.utils.js.map +1 -0
  213. package/dist/utils/rate-limit.utils.d.ts +9 -0
  214. package/dist/utils/rate-limit.utils.d.ts.map +1 -0
  215. package/dist/utils/rate-limit.utils.js +30 -0
  216. package/dist/utils/rate-limit.utils.js.map +1 -0
  217. package/dist/utils/redis.utils.d.ts +3 -0
  218. package/dist/utils/redis.utils.d.ts.map +1 -0
  219. package/dist/utils/redis.utils.js +14 -0
  220. package/dist/utils/redis.utils.js.map +1 -0
  221. package/package.json +17 -17
  222. package/dist/decorators/decorators.d.ts +0 -489
  223. package/dist/decorators/decorators.d.ts.map +0 -1
  224. package/dist/decorators/decorators.js +0 -680
  225. package/dist/decorators/decorators.js.map +0 -1
  226. package/dist/domain/interfaces.d.ts +0 -748
  227. package/dist/domain/interfaces.d.ts.map +0 -1
  228. package/dist/domain/interfaces.js +0 -19
  229. package/dist/domain/interfaces.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/service-queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/service-queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,wDAAsC"}
@@ -1,37 +1,8 @@
1
1
  import { OnModuleInit, OnApplicationShutdown } from '@nestjs/common';
2
2
  import Redis from 'ioredis';
3
3
  import { IAtomicQueuesModuleConfig } from '../../domain';
4
- /**
5
- * Service-level job names for global atomic operations.
6
- * These operations MUST be processed by exactly ONE worker across the entire distributed system.
7
- */
8
- export declare enum ServiceQueueJobNames {
9
- /** Get the count of all workers across all nodes */
10
- GET_GLOBAL_WORKER_COUNT = "get-global-worker-count",
11
- /** Get workers for a specific entity across all nodes */
12
- GET_ENTITY_WORKERS = "get-entity-workers",
13
- /** Verify ownership of a resource */
14
- VERIFY_OWNERSHIP = "verify-ownership",
15
- /** Acquire global lock */
16
- ACQUIRE_GLOBAL_LOCK = "acquire-global-lock",
17
- /** Release global lock */
18
- RELEASE_GLOBAL_LOCK = "release-global-lock",
19
- /** Run scaling cycle for CronManager - triggers worker spawn/terminate decisions */
20
- RUN_SCALING_CYCLE = "run-scaling-cycle",
21
- /** Spawn a worker for a specific entity - used when opening a table/entity */
22
- SPAWN_ENTITY_WORKER = "spawn-entity-worker",
23
- /** Custom service operation */
24
- CUSTOM = "custom"
25
- }
26
- /**
27
- * Job data for service queue operations
28
- */
29
- export interface IServiceQueueJobData<T = unknown> {
30
- uuid: string;
31
- jobName: ServiceQueueJobNames;
32
- payload: T;
33
- responseChannel?: string;
34
- }
4
+ import { ServiceQueueJobNames } from './service-queue.types';
5
+ export { ServiceQueueJobNames, IServiceQueueJobData } from './service-queue.types';
35
6
  /**
36
7
  * ServiceQueueManager
37
8
  *
@@ -224,9 +195,5 @@ export declare class ServiceQueueManager implements OnModuleInit, OnApplicationS
224
195
  * Used when opening a table/entity that needs a worker immediately.
225
196
  */
226
197
  private handleSpawnEntityWorker;
227
- /**
228
- * Scan Redis keys matching a pattern.
229
- */
230
- private scanKeys;
231
198
  }
232
199
  //# sourceMappingURL=service-queue.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-queue.service.d.ts","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-queue.service.d.ts","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.service.ts"],"names":[],"mappings":"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"}
@@ -21,30 +21,11 @@ const common_1 = require("@nestjs/common");
21
21
  const bullmq_1 = require("bullmq");
22
22
  const ioredis_1 = __importDefault(require("ioredis"));
23
23
  const uuid_1 = require("uuid");
24
+ const utils_1 = require("../../utils");
24
25
  const constants_1 = require("../constants");
25
- /**
26
- * Service-level job names for global atomic operations.
27
- * These operations MUST be processed by exactly ONE worker across the entire distributed system.
28
- */
29
- var ServiceQueueJobNames;
30
- (function (ServiceQueueJobNames) {
31
- /** Get the count of all workers across all nodes */
32
- ServiceQueueJobNames["GET_GLOBAL_WORKER_COUNT"] = "get-global-worker-count";
33
- /** Get workers for a specific entity across all nodes */
34
- ServiceQueueJobNames["GET_ENTITY_WORKERS"] = "get-entity-workers";
35
- /** Verify ownership of a resource */
36
- ServiceQueueJobNames["VERIFY_OWNERSHIP"] = "verify-ownership";
37
- /** Acquire global lock */
38
- ServiceQueueJobNames["ACQUIRE_GLOBAL_LOCK"] = "acquire-global-lock";
39
- /** Release global lock */
40
- ServiceQueueJobNames["RELEASE_GLOBAL_LOCK"] = "release-global-lock";
41
- /** Run scaling cycle for CronManager - triggers worker spawn/terminate decisions */
42
- ServiceQueueJobNames["RUN_SCALING_CYCLE"] = "run-scaling-cycle";
43
- /** Spawn a worker for a specific entity - used when opening a table/entity */
44
- ServiceQueueJobNames["SPAWN_ENTITY_WORKER"] = "spawn-entity-worker";
45
- /** Custom service operation */
46
- ServiceQueueJobNames["CUSTOM"] = "custom";
47
- })(ServiceQueueJobNames || (exports.ServiceQueueJobNames = ServiceQueueJobNames = {}));
26
+ const service_queue_types_1 = require("./service-queue.types");
27
+ var service_queue_types_2 = require("./service-queue.types");
28
+ Object.defineProperty(exports, "ServiceQueueJobNames", { enumerable: true, get: function () { return service_queue_types_2.ServiceQueueJobNames; } });
48
29
  /**
49
30
  * ServiceQueueManager
50
31
  *
@@ -91,7 +72,7 @@ let ServiceQueueManager = ServiceQueueManager_1 = class ServiceQueueManager {
91
72
  this.customProcessors = new Map();
92
73
  // Scaling cycle handler (registered by CronManager)
93
74
  this.scalingCycleHandler = null;
94
- this.keyPrefix = config.keyPrefix || 'aq';
75
+ this.keyPrefix = (0, utils_1.resolveKeyPrefix)(config);
95
76
  this.serviceQueueName =
96
77
  config.serviceQueue?.queueName || `${this.keyPrefix}-service-queue`;
97
78
  this.serviceWorkerName =
@@ -248,7 +229,7 @@ let ServiceQueueManager = ServiceQueueManager_1 = class ServiceQueueManager {
248
229
  return;
249
230
  }
250
231
  // Fire-and-forget - we don't need to wait for the result
251
- await this.queueServiceOperation(ServiceQueueJobNames.RUN_SCALING_CYCLE, {
232
+ await this.queueServiceOperation(service_queue_types_1.ServiceQueueJobNames.RUN_SCALING_CYCLE, {
252
233
  entityType,
253
234
  });
254
235
  }
@@ -269,7 +250,7 @@ let ServiceQueueManager = ServiceQueueManager_1 = class ServiceQueueManager {
269
250
  }
270
251
  this.logger.log(`Requesting worker spawn for ${entityType}/${entityId}`);
271
252
  // Fire-and-forget - we don't need to wait for the result
272
- await this.queueServiceOperation(ServiceQueueJobNames.SPAWN_ENTITY_WORKER, {
253
+ await this.queueServiceOperation(service_queue_types_1.ServiceQueueJobNames.SPAWN_ENTITY_WORKER, {
273
254
  entityType,
274
255
  entityId,
275
256
  });
@@ -425,28 +406,28 @@ let ServiceQueueManager = ServiceQueueManager_1 = class ServiceQueueManager {
425
406
  let error = null;
426
407
  try {
427
408
  switch (jobName) {
428
- case ServiceQueueJobNames.GET_GLOBAL_WORKER_COUNT:
409
+ case service_queue_types_1.ServiceQueueJobNames.GET_GLOBAL_WORKER_COUNT:
429
410
  result = await this.handleGetGlobalWorkerCount(payload);
430
411
  break;
431
- case ServiceQueueJobNames.GET_ENTITY_WORKERS:
412
+ case service_queue_types_1.ServiceQueueJobNames.GET_ENTITY_WORKERS:
432
413
  result = await this.handleGetEntityWorkers(payload);
433
414
  break;
434
- case ServiceQueueJobNames.VERIFY_OWNERSHIP:
415
+ case service_queue_types_1.ServiceQueueJobNames.VERIFY_OWNERSHIP:
435
416
  result = await this.handleVerifyOwnership(payload);
436
417
  break;
437
- case ServiceQueueJobNames.ACQUIRE_GLOBAL_LOCK:
418
+ case service_queue_types_1.ServiceQueueJobNames.ACQUIRE_GLOBAL_LOCK:
438
419
  result = await this.handleAcquireGlobalLock(payload);
439
420
  break;
440
- case ServiceQueueJobNames.RELEASE_GLOBAL_LOCK:
421
+ case service_queue_types_1.ServiceQueueJobNames.RELEASE_GLOBAL_LOCK:
441
422
  result = await this.handleReleaseGlobalLock(payload);
442
423
  break;
443
- case ServiceQueueJobNames.RUN_SCALING_CYCLE:
424
+ case service_queue_types_1.ServiceQueueJobNames.RUN_SCALING_CYCLE:
444
425
  result = await this.handleRunScalingCycle(payload);
445
426
  break;
446
- case ServiceQueueJobNames.SPAWN_ENTITY_WORKER:
427
+ case service_queue_types_1.ServiceQueueJobNames.SPAWN_ENTITY_WORKER:
447
428
  result = await this.handleSpawnEntityWorker(payload);
448
429
  break;
449
- case ServiceQueueJobNames.CUSTOM:
430
+ case service_queue_types_1.ServiceQueueJobNames.CUSTOM:
450
431
  result = await this.handleCustomOperation(payload);
451
432
  break;
452
433
  default:
@@ -519,7 +500,7 @@ let ServiceQueueManager = ServiceQueueManager_1 = class ServiceQueueManager {
519
500
  const pattern = entityType
520
501
  ? `${this.keyPrefix}:worker:*:${entityType}-*`
521
502
  : `${this.keyPrefix}:worker:*:*`;
522
- const keys = await this.scanKeys(pattern);
503
+ const keys = await (0, utils_1.scanKeys)(this.redis, pattern);
523
504
  return keys.length;
524
505
  }
525
506
  /**
@@ -532,7 +513,7 @@ let ServiceQueueManager = ServiceQueueManager_1 = class ServiceQueueManager {
532
513
  // Worker names follow pattern: {entityId}-worker
533
514
  const workerName = `${entityId}-worker`;
534
515
  const pattern = `${this.keyPrefix}:worker:*:${workerName}`;
535
- const keys = await this.scanKeys(pattern);
516
+ const keys = await (0, utils_1.scanKeys)(this.redis, pattern);
536
517
  return keys.map((key) => key.split(':').pop());
537
518
  }
538
519
  /**
@@ -625,19 +606,6 @@ let ServiceQueueManager = ServiceQueueManager_1 = class ServiceQueueManager {
625
606
  return { spawned: false, error: error.message };
626
607
  }
627
608
  }
628
- /**
629
- * Scan Redis keys matching a pattern.
630
- */
631
- async scanKeys(pattern) {
632
- let cursor = '0';
633
- const keys = [];
634
- do {
635
- const [nextCursor, scanKeys] = await this.redis.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
636
- cursor = nextCursor;
637
- keys.push(...scanKeys);
638
- } while (cursor !== '0');
639
- return keys;
640
- }
641
609
  };
642
610
  exports.ServiceQueueManager = ServiceQueueManager;
643
611
  exports.ServiceQueueManager = ServiceQueueManager = ServiceQueueManager_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"service-queue.service.js","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-queue.service.js","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Service-level job names for global atomic operations.
3
+ * These operations MUST be processed by exactly ONE worker across the entire distributed system.
4
+ */
5
+ export declare enum ServiceQueueJobNames {
6
+ /** Get the count of all workers across all nodes */
7
+ GET_GLOBAL_WORKER_COUNT = "get-global-worker-count",
8
+ /** Get workers for a specific entity across all nodes */
9
+ GET_ENTITY_WORKERS = "get-entity-workers",
10
+ /** Verify ownership of a resource */
11
+ VERIFY_OWNERSHIP = "verify-ownership",
12
+ /** Acquire global lock */
13
+ ACQUIRE_GLOBAL_LOCK = "acquire-global-lock",
14
+ /** Release global lock */
15
+ RELEASE_GLOBAL_LOCK = "release-global-lock",
16
+ /** Run scaling cycle for CronManager - triggers worker spawn/terminate decisions */
17
+ RUN_SCALING_CYCLE = "run-scaling-cycle",
18
+ /** Spawn a worker for a specific entity - used when opening a table/entity */
19
+ SPAWN_ENTITY_WORKER = "spawn-entity-worker",
20
+ /** Custom service operation */
21
+ CUSTOM = "custom"
22
+ }
23
+ /**
24
+ * Job data for service queue operations
25
+ */
26
+ export interface IServiceQueueJobData<T = unknown> {
27
+ uuid: string;
28
+ jobName: ServiceQueueJobNames;
29
+ payload: T;
30
+ responseChannel?: string;
31
+ }
32
+ //# sourceMappingURL=service-queue.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-queue.types.d.ts","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,oBAAoB;IAC9B,oDAAoD;IACpD,uBAAuB,4BAA4B;IACnD,yDAAyD;IACzD,kBAAkB,uBAAuB;IACzC,qCAAqC;IACrC,gBAAgB,qBAAqB;IACrC,0BAA0B;IAC1B,mBAAmB,wBAAwB;IAC3C,0BAA0B;IAC1B,mBAAmB,wBAAwB;IAC3C,oFAAoF;IACpF,iBAAiB,sBAAsB;IACvC,8EAA8E;IAC9E,mBAAmB,wBAAwB;IAC3C,+BAA+B;IAC/B,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServiceQueueJobNames = void 0;
4
+ /**
5
+ * Service-level job names for global atomic operations.
6
+ * These operations MUST be processed by exactly ONE worker across the entire distributed system.
7
+ */
8
+ var ServiceQueueJobNames;
9
+ (function (ServiceQueueJobNames) {
10
+ /** Get the count of all workers across all nodes */
11
+ ServiceQueueJobNames["GET_GLOBAL_WORKER_COUNT"] = "get-global-worker-count";
12
+ /** Get workers for a specific entity across all nodes */
13
+ ServiceQueueJobNames["GET_ENTITY_WORKERS"] = "get-entity-workers";
14
+ /** Verify ownership of a resource */
15
+ ServiceQueueJobNames["VERIFY_OWNERSHIP"] = "verify-ownership";
16
+ /** Acquire global lock */
17
+ ServiceQueueJobNames["ACQUIRE_GLOBAL_LOCK"] = "acquire-global-lock";
18
+ /** Release global lock */
19
+ ServiceQueueJobNames["RELEASE_GLOBAL_LOCK"] = "release-global-lock";
20
+ /** Run scaling cycle for CronManager - triggers worker spawn/terminate decisions */
21
+ ServiceQueueJobNames["RUN_SCALING_CYCLE"] = "run-scaling-cycle";
22
+ /** Spawn a worker for a specific entity - used when opening a table/entity */
23
+ ServiceQueueJobNames["SPAWN_ENTITY_WORKER"] = "spawn-entity-worker";
24
+ /** Custom service operation */
25
+ ServiceQueueJobNames["CUSTOM"] = "custom";
26
+ })(ServiceQueueJobNames || (exports.ServiceQueueJobNames = ServiceQueueJobNames = {}));
27
+ //# sourceMappingURL=service-queue.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-queue.types.js","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.types.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,oBAiBX;AAjBD,WAAY,oBAAoB;IAC9B,oDAAoD;IACpD,2EAAmD,CAAA;IACnD,yDAAyD;IACzD,iEAAyC,CAAA;IACzC,qCAAqC;IACrC,6DAAqC,CAAA;IACrC,0BAA0B;IAC1B,mEAA2C,CAAA;IAC3C,0BAA0B;IAC1B,mEAA2C,CAAA;IAC3C,oFAAoF;IACpF,+DAAuC,CAAA;IACvC,8EAA8E;IAC9E,mEAA2C,CAAA;IAC3C,+BAA+B;IAC/B,yCAAiB,CAAA;AACnB,CAAC,EAjBW,oBAAoB,oCAApB,oBAAoB,QAiB/B"}
@@ -0,0 +1,2 @@
1
+ export * from './spawn-queue.service';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/spawn-queue/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./spawn-queue.service"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/spawn-queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
@@ -0,0 +1,119 @@
1
+ import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
2
+ import Redis from 'ioredis';
3
+ import { IAtomicQueuesModuleConfig } from '../../domain';
4
+ import { WorkerManagerService } from '../worker-manager';
5
+ import { QueueEventsManagerService } from '../queue-events-manager';
6
+ /**
7
+ * Spawn job payload
8
+ */
9
+ export interface ISpawnJobData {
10
+ entityType: string;
11
+ entityId: string;
12
+ }
13
+ /**
14
+ * Handler callback that the ProcessorDiscoveryService registers
15
+ * to actually create the entity worker on this pod.
16
+ */
17
+ export type SpawnWorkerHandler = (entityType: string, entityId: string) => Promise<void>;
18
+ /**
19
+ * SpawnQueueService
20
+ *
21
+ * Replaces the cron-based / service-queue-based worker creation model
22
+ * with a distributed spawn queue.
23
+ *
24
+ * Architecture:
25
+ * - One shared BullMQ queue: `{prefix}-spawn-queue`
26
+ * - EVERY pod runs a BullMQ Worker on this queue (concurrency: 1)
27
+ * - When QueueEventsManager detects a job for an entity with no worker,
28
+ * it enqueues a spawn-worker job here
29
+ * - BullMQ distributes spawn jobs round-robin across pods
30
+ * - Whichever pod picks up the job creates the entity worker locally
31
+ * - Duplicate protection: before creating, check if worker already exists
32
+ * (heartbeat key in Redis). If yes, skip. Race-safe because BullMQ
33
+ * guarantees only ONE worker processes each job.
34
+ *
35
+ * Benefits over the old cron approach:
36
+ * - Workers naturally distribute across all pods
37
+ * - No single leader / no single point of bottleneck
38
+ * - No distributed lock / leader election needed
39
+ * - Reactive (spawn on demand) rather than polling
40
+ *
41
+ * Idle cleanup:
42
+ * - Each pod runs a local interval that checks its OWN workers' idle time
43
+ * - Idle workers are closed directly (no cross-pod signaling needed)
44
+ */
45
+ export declare class SpawnQueueService implements OnModuleInit, OnModuleDestroy {
46
+ private readonly redis;
47
+ private readonly config;
48
+ private readonly workerManager;
49
+ private readonly logger;
50
+ private readonly keyPrefix;
51
+ private readonly spawnQueueName;
52
+ private spawnQueue;
53
+ private spawnWorker;
54
+ private idleSweepInterval;
55
+ /** Handler registered by ProcessorDiscoveryService */
56
+ private spawnHandler;
57
+ /** Idle timeout per entity type (set by ProcessorDiscovery) */
58
+ private readonly idleTimeouts;
59
+ /** Default idle timeout in seconds */
60
+ private readonly defaultIdleTimeoutSeconds;
61
+ /** Idle sweep interval in ms */
62
+ private readonly idleSweepIntervalMs;
63
+ /** Reference to QueueEventsManager for hot-cache eviction on idle close */
64
+ private queueEventsManager;
65
+ constructor(redis: Redis, config: IAtomicQueuesModuleConfig, workerManager: WorkerManagerService);
66
+ /**
67
+ * Set the QueueEventsManagerService reference for hot-cache eviction.
68
+ * Called by ProcessorDiscoveryService to avoid circular dependency.
69
+ */
70
+ setQueueEventsManager(manager: QueueEventsManagerService): void;
71
+ /**
72
+ * Register the handler that creates entity workers.
73
+ * Called by ProcessorDiscoveryService during init.
74
+ */
75
+ registerSpawnHandler(handler: SpawnWorkerHandler): void;
76
+ /**
77
+ * Register idle timeout for an entity type.
78
+ */
79
+ registerIdleTimeout(entityType: string, timeoutSeconds: number): void;
80
+ /**
81
+ * Initialize: create the spawn queue and start the spawn worker + idle sweep.
82
+ */
83
+ onModuleInit(): Promise<void>;
84
+ /**
85
+ * Enqueue a spawn-worker request.
86
+ * Called by QueueEventsManager when a job arrives for an entity with no worker.
87
+ *
88
+ * Uses deduplication: jobId = `spawn-{entityType}-{entityId}` so BullMQ
89
+ * will not create a duplicate if one is already queued/active.
90
+ */
91
+ requestSpawn(entityType: string, entityId: string): Promise<void>;
92
+ /**
93
+ * Handle a spawn job picked up by this pod's worker.
94
+ */
95
+ private handleSpawnJob;
96
+ /**
97
+ * Direct spawn — bypasses the BullMQ queue entirely.
98
+ * Called by QueueEventsManagerService when it wins the atomic claim
99
+ * and wants to create the worker on this pod immediately.
100
+ */
101
+ handleSpawnJobDirect(entityType: string, entityId: string): Promise<void>;
102
+ /**
103
+ * Start the local idle sweep interval.
104
+ * Periodically checks all workers on THIS pod and closes idle ones.
105
+ */
106
+ private startIdleSweep;
107
+ /**
108
+ * Sweep all workers on this pod, close any that are idle.
109
+ */
110
+ private sweepIdleWorkers;
111
+ /**
112
+ * Extract entity type from worker name.
113
+ * Worker names follow pattern: {entityType}-{entityId}-worker
114
+ * e.g., "candy-abc123-worker" → "candy"
115
+ */
116
+ private extractEntityTypeFromWorkerName;
117
+ onModuleDestroy(): Promise<void>;
118
+ }
119
+ //# sourceMappingURL=spawn-queue.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn-queue.service.d.ts","sourceRoot":"","sources":["../../../src/services/spawn-queue/spawn-queue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,iBAAkB,YAAW,YAAY,EAAE,eAAe;IAyBtC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IA3BhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAA+B;IAExD,sDAAsD;IACtD,OAAO,CAAC,YAAY,CAAmC;IAEvD,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAE/D,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IAEnD,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,2EAA2E;IAC3E,OAAO,CAAC,kBAAkB,CAA0C;gBAGpB,KAAK,EAAE,KAAK,EAEzC,MAAM,EAAE,yBAAyB,EACjC,aAAa,EAAE,oBAAoB;IAQtD;;;OAGG;IACH,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;IAI/D;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKvD;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAIrE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CnC;;;;;;OAMG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BvE;;OAEG;YACW,cAAc;IAwB5B;;;;OAIG;IACG,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/E;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;YACW,gBAAgB;IA+B9B;;;;OAIG;IACH,OAAO,CAAC,+BAA+B;IAejC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAqBvC"}