atomic-queues 1.6.2 → 2.0.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.
Files changed (337) hide show
  1. package/README.md +273 -413
  2. package/dist/cli/generators/json-schema.d.ts +3 -0
  3. package/dist/cli/generators/json-schema.d.ts.map +1 -0
  4. package/dist/cli/generators/json-schema.js +31 -0
  5. package/dist/cli/generators/json-schema.js.map +1 -0
  6. package/dist/cli/generators/typescript.d.ts +3 -0
  7. package/dist/cli/generators/typescript.d.ts.map +1 -0
  8. package/dist/cli/generators/typescript.js +62 -0
  9. package/dist/cli/generators/typescript.js.map +1 -0
  10. package/dist/cli/index.d.ts +3 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +156 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/decorators/actor.decorators.d.ts +4 -0
  15. package/dist/decorators/actor.decorators.d.ts.map +1 -0
  16. package/dist/decorators/actor.decorators.js +32 -0
  17. package/dist/decorators/actor.decorators.js.map +1 -0
  18. package/dist/decorators/constants.d.ts +5 -12
  19. package/dist/decorators/constants.d.ts.map +1 -1
  20. package/dist/decorators/constants.js +10 -16
  21. package/dist/decorators/constants.js.map +1 -1
  22. package/dist/decorators/index.d.ts +4 -4
  23. package/dist/decorators/index.d.ts.map +1 -1
  24. package/dist/decorators/index.js +4 -4
  25. package/dist/decorators/index.js.map +1 -1
  26. package/dist/decorators/interfaces.d.ts +18 -78
  27. package/dist/decorators/interfaces.d.ts.map +1 -1
  28. package/dist/decorators/metadata-readers.d.ts +5 -26
  29. package/dist/decorators/metadata-readers.d.ts.map +1 -1
  30. package/dist/decorators/metadata-readers.js +16 -33
  31. package/dist/decorators/metadata-readers.js.map +1 -1
  32. package/dist/decorators/schema.decorators.d.ts +2 -0
  33. package/dist/decorators/schema.decorators.d.ts.map +1 -0
  34. package/dist/decorators/schema.decorators.js +13 -0
  35. package/dist/decorators/schema.decorators.js.map +1 -0
  36. package/dist/domain/interfaces/config.interfaces.d.ts +52 -153
  37. package/dist/domain/interfaces/config.interfaces.d.ts.map +1 -1
  38. package/dist/domain/interfaces/index.d.ts +0 -7
  39. package/dist/domain/interfaces/index.d.ts.map +1 -1
  40. package/dist/domain/interfaces/index.js +0 -7
  41. package/dist/domain/interfaces/index.js.map +1 -1
  42. package/dist/domain/interfaces/job.interfaces.d.ts +32 -65
  43. package/dist/domain/interfaces/job.interfaces.d.ts.map +1 -1
  44. package/dist/index.d.ts +0 -34
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +0 -39
  47. package/dist/index.js.map +1 -1
  48. package/dist/module/atomic-queues.module.d.ts +0 -83
  49. package/dist/module/atomic-queues.module.d.ts.map +1 -1
  50. package/dist/module/atomic-queues.module.js +35 -134
  51. package/dist/module/atomic-queues.module.js.map +1 -1
  52. package/dist/services/actor-registry/actor-registry.service.d.ts +30 -0
  53. package/dist/services/actor-registry/actor-registry.service.d.ts.map +1 -0
  54. package/dist/services/actor-registry/actor-registry.service.js +186 -0
  55. package/dist/services/actor-registry/actor-registry.service.js.map +1 -0
  56. package/dist/services/actor-registry/index.d.ts +2 -0
  57. package/dist/services/actor-registry/index.d.ts.map +1 -0
  58. package/dist/services/actor-registry/index.js +18 -0
  59. package/dist/services/actor-registry/index.js.map +1 -0
  60. package/dist/services/actor-system/actor-system.service.d.ts +19 -0
  61. package/dist/services/actor-system/actor-system.service.d.ts.map +1 -0
  62. package/dist/services/actor-system/actor-system.service.js +86 -0
  63. package/dist/services/actor-system/actor-system.service.js.map +1 -0
  64. package/dist/services/actor-system/index.d.ts +2 -0
  65. package/dist/services/actor-system/index.d.ts.map +1 -0
  66. package/dist/services/{cron-manager → actor-system}/index.js +1 -1
  67. package/dist/services/actor-system/index.js.map +1 -0
  68. package/dist/services/command-discovery/command-discovery.service.d.ts +6 -53
  69. package/dist/services/command-discovery/command-discovery.service.d.ts.map +1 -1
  70. package/dist/services/command-discovery/command-discovery.service.js +0 -59
  71. package/dist/services/command-discovery/command-discovery.service.js.map +1 -1
  72. package/dist/services/constants.d.ts +2 -9
  73. package/dist/services/constants.d.ts.map +1 -1
  74. package/dist/services/constants.js +3 -10
  75. package/dist/services/constants.js.map +1 -1
  76. package/dist/services/executor-pool/executor-pool.service.d.ts +31 -0
  77. package/dist/services/executor-pool/executor-pool.service.d.ts.map +1 -0
  78. package/dist/services/executor-pool/executor-pool.service.js +147 -0
  79. package/dist/services/executor-pool/executor-pool.service.js.map +1 -0
  80. package/dist/services/executor-pool/index.d.ts +2 -0
  81. package/dist/services/executor-pool/index.d.ts.map +1 -0
  82. package/dist/services/{queue-manager → executor-pool}/index.js +1 -1
  83. package/dist/services/executor-pool/index.js.map +1 -0
  84. package/dist/services/gate/gate.service.d.ts +17 -0
  85. package/dist/services/gate/gate.service.d.ts.map +1 -0
  86. package/dist/services/gate/gate.service.js +66 -0
  87. package/dist/services/gate/gate.service.js.map +1 -0
  88. package/dist/services/gate/index.d.ts +2 -0
  89. package/dist/services/gate/index.d.ts.map +1 -0
  90. package/dist/services/{spawn-queue → gate}/index.js +1 -1
  91. package/dist/services/gate/index.js.map +1 -0
  92. package/dist/services/handler-executor/handler-executor.service.d.ts +32 -0
  93. package/dist/services/handler-executor/handler-executor.service.d.ts.map +1 -0
  94. package/dist/services/handler-executor/handler-executor.service.js +186 -0
  95. package/dist/services/handler-executor/handler-executor.service.js.map +1 -0
  96. package/dist/services/handler-executor/index.d.ts +2 -0
  97. package/dist/services/handler-executor/index.d.ts.map +1 -0
  98. package/dist/services/handler-executor/index.js +18 -0
  99. package/dist/services/handler-executor/index.js.map +1 -0
  100. package/dist/services/index.d.ts +11 -12
  101. package/dist/services/index.d.ts.map +1 -1
  102. package/dist/services/index.js +11 -12
  103. package/dist/services/index.js.map +1 -1
  104. package/dist/services/log/index.d.ts +2 -0
  105. package/dist/services/log/index.d.ts.map +1 -0
  106. package/dist/services/{index-manager → log}/index.js +1 -1
  107. package/dist/services/log/index.js.map +1 -0
  108. package/dist/services/log/log.service.d.ts +21 -0
  109. package/dist/services/log/log.service.d.ts.map +1 -0
  110. package/dist/services/log/log.service.js +92 -0
  111. package/dist/services/log/log.service.js.map +1 -0
  112. package/dist/services/queue-bus/index.d.ts +0 -4
  113. package/dist/services/queue-bus/index.d.ts.map +1 -1
  114. package/dist/services/queue-bus/index.js +0 -4
  115. package/dist/services/queue-bus/index.js.map +1 -1
  116. package/dist/services/queue-bus/queue-bus.service.d.ts +44 -198
  117. package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -1
  118. package/dist/services/queue-bus/queue-bus.service.js +103 -259
  119. package/dist/services/queue-bus/queue-bus.service.js.map +1 -1
  120. package/dist/services/queue-bus/queue-bus.utils.d.ts +0 -28
  121. package/dist/services/queue-bus/queue-bus.utils.d.ts.map +1 -1
  122. package/dist/services/queue-bus/queue-bus.utils.js +1 -41
  123. package/dist/services/queue-bus/queue-bus.utils.js.map +1 -1
  124. package/dist/services/registry/index.d.ts +4 -0
  125. package/dist/services/registry/index.d.ts.map +1 -0
  126. package/dist/services/{queue-events-manager → registry}/index.js +3 -1
  127. package/dist/services/registry/index.js.map +1 -0
  128. package/dist/services/registry/registry.service.d.ts +43 -0
  129. package/dist/services/registry/registry.service.d.ts.map +1 -0
  130. package/dist/services/registry/registry.service.js +379 -0
  131. package/dist/services/registry/registry.service.js.map +1 -0
  132. package/dist/services/registry/registry.types.d.ts +24 -0
  133. package/dist/services/registry/registry.types.d.ts.map +1 -0
  134. package/dist/{domain/interfaces/lock.interfaces.js → services/registry/registry.types.js} +1 -1
  135. package/dist/services/registry/registry.types.js.map +1 -0
  136. package/dist/services/registry/schema-converter.d.ts +2 -0
  137. package/dist/services/registry/schema-converter.d.ts.map +1 -0
  138. package/dist/services/registry/schema-converter.js +27 -0
  139. package/dist/services/registry/schema-converter.js.map +1 -0
  140. package/dist/services/result-collector/index.d.ts +2 -0
  141. package/dist/services/result-collector/index.d.ts.map +1 -0
  142. package/dist/services/result-collector/index.js +18 -0
  143. package/dist/services/result-collector/index.js.map +1 -0
  144. package/dist/services/result-collector/result-collector.service.d.ts +17 -0
  145. package/dist/services/result-collector/result-collector.service.d.ts.map +1 -0
  146. package/dist/services/result-collector/result-collector.service.js +92 -0
  147. package/dist/services/result-collector/result-collector.service.js.map +1 -0
  148. package/dist/services/scheduler/index.d.ts +2 -0
  149. package/dist/services/scheduler/index.d.ts.map +1 -0
  150. package/dist/services/{job-processor → scheduler}/index.js +1 -1
  151. package/dist/services/scheduler/index.js.map +1 -0
  152. package/dist/services/scheduler/scheduler.service.d.ts +17 -0
  153. package/dist/services/scheduler/scheduler.service.d.ts.map +1 -0
  154. package/dist/services/scheduler/scheduler.service.js +116 -0
  155. package/dist/services/scheduler/scheduler.service.js.map +1 -0
  156. package/dist/services/shutdown/index.d.ts +2 -0
  157. package/dist/services/shutdown/index.d.ts.map +1 -0
  158. package/dist/services/shutdown/index.js +18 -0
  159. package/dist/services/shutdown/index.js.map +1 -0
  160. package/dist/services/shutdown/shutdown.service.d.ts +8 -0
  161. package/dist/services/shutdown/shutdown.service.d.ts.map +1 -0
  162. package/dist/services/shutdown/shutdown.service.js +29 -0
  163. package/dist/services/shutdown/shutdown.service.js.map +1 -0
  164. package/dist/utils/index.d.ts +3 -1
  165. package/dist/utils/index.d.ts.map +1 -1
  166. package/dist/utils/index.js +3 -1
  167. package/dist/utils/index.js.map +1 -1
  168. package/dist/utils/naming.utils.d.ts +0 -16
  169. package/dist/utils/naming.utils.d.ts.map +1 -1
  170. package/dist/utils/naming.utils.js +0 -29
  171. package/dist/utils/naming.utils.js.map +1 -1
  172. package/package.json +19 -11
  173. package/dist/decorators/legacy.decorators.d.ts +0 -36
  174. package/dist/decorators/legacy.decorators.d.ts.map +0 -1
  175. package/dist/decorators/legacy.decorators.js +0 -61
  176. package/dist/decorators/legacy.decorators.js.map +0 -1
  177. package/dist/decorators/scaler.decorators.d.ts +0 -65
  178. package/dist/decorators/scaler.decorators.d.ts.map +0 -1
  179. package/dist/decorators/scaler.decorators.js +0 -103
  180. package/dist/decorators/scaler.decorators.js.map +0 -1
  181. package/dist/decorators/type-guards.d.ts +0 -18
  182. package/dist/decorators/type-guards.d.ts.map +0 -1
  183. package/dist/decorators/type-guards.js +0 -32
  184. package/dist/decorators/type-guards.js.map +0 -1
  185. package/dist/decorators/worker.decorators.d.ts +0 -58
  186. package/dist/decorators/worker.decorators.d.ts.map +0 -1
  187. package/dist/decorators/worker.decorators.js +0 -92
  188. package/dist/decorators/worker.decorators.js.map +0 -1
  189. package/dist/domain/interfaces/event.interfaces.d.ts +0 -71
  190. package/dist/domain/interfaces/event.interfaces.d.ts.map +0 -1
  191. package/dist/domain/interfaces/event.interfaces.js +0 -3
  192. package/dist/domain/interfaces/event.interfaces.js.map +0 -1
  193. package/dist/domain/interfaces/index-tracking.interfaces.d.ts +0 -69
  194. package/dist/domain/interfaces/index-tracking.interfaces.d.ts.map +0 -1
  195. package/dist/domain/interfaces/index-tracking.interfaces.js +0 -3
  196. package/dist/domain/interfaces/index-tracking.interfaces.js.map +0 -1
  197. package/dist/domain/interfaces/lock.interfaces.d.ts +0 -54
  198. package/dist/domain/interfaces/lock.interfaces.d.ts.map +0 -1
  199. package/dist/domain/interfaces/lock.interfaces.js.map +0 -1
  200. package/dist/domain/interfaces/process.interfaces.d.ts +0 -44
  201. package/dist/domain/interfaces/process.interfaces.d.ts.map +0 -1
  202. package/dist/domain/interfaces/process.interfaces.js +0 -3
  203. package/dist/domain/interfaces/process.interfaces.js.map +0 -1
  204. package/dist/domain/interfaces/queue.interfaces.d.ts +0 -46
  205. package/dist/domain/interfaces/queue.interfaces.d.ts.map +0 -1
  206. package/dist/domain/interfaces/queue.interfaces.js +0 -3
  207. package/dist/domain/interfaces/queue.interfaces.js.map +0 -1
  208. package/dist/domain/interfaces/scaling.interfaces.d.ts +0 -62
  209. package/dist/domain/interfaces/scaling.interfaces.d.ts.map +0 -1
  210. package/dist/domain/interfaces/scaling.interfaces.js +0 -3
  211. package/dist/domain/interfaces/scaling.interfaces.js.map +0 -1
  212. package/dist/domain/interfaces/worker.interfaces.d.ts +0 -120
  213. package/dist/domain/interfaces/worker.interfaces.d.ts.map +0 -1
  214. package/dist/domain/interfaces/worker.interfaces.js +0 -3
  215. package/dist/domain/interfaces/worker.interfaces.js.map +0 -1
  216. package/dist/services/cron-manager/cron-manager.service.d.ts +0 -199
  217. package/dist/services/cron-manager/cron-manager.service.d.ts.map +0 -1
  218. package/dist/services/cron-manager/cron-manager.service.js +0 -583
  219. package/dist/services/cron-manager/cron-manager.service.js.map +0 -1
  220. package/dist/services/cron-manager/index.d.ts +0 -2
  221. package/dist/services/cron-manager/index.d.ts.map +0 -1
  222. package/dist/services/cron-manager/index.js.map +0 -1
  223. package/dist/services/index-manager/index-manager.service.d.ts +0 -142
  224. package/dist/services/index-manager/index-manager.service.d.ts.map +0 -1
  225. package/dist/services/index-manager/index-manager.service.js +0 -325
  226. package/dist/services/index-manager/index-manager.service.js.map +0 -1
  227. package/dist/services/index-manager/index.d.ts +0 -2
  228. package/dist/services/index-manager/index.d.ts.map +0 -1
  229. package/dist/services/index-manager/index.js.map +0 -1
  230. package/dist/services/job-processor/index.d.ts +0 -2
  231. package/dist/services/job-processor/index.d.ts.map +0 -1
  232. package/dist/services/job-processor/index.js.map +0 -1
  233. package/dist/services/job-processor/job-processor.service.d.ts +0 -156
  234. package/dist/services/job-processor/job-processor.service.d.ts.map +0 -1
  235. package/dist/services/job-processor/job-processor.service.js +0 -331
  236. package/dist/services/job-processor/job-processor.service.js.map +0 -1
  237. package/dist/services/processor-discovery/decorator-discovery.service.d.ts +0 -40
  238. package/dist/services/processor-discovery/decorator-discovery.service.d.ts.map +0 -1
  239. package/dist/services/processor-discovery/decorator-discovery.service.js +0 -191
  240. package/dist/services/processor-discovery/decorator-discovery.service.js.map +0 -1
  241. package/dist/services/processor-discovery/index.d.ts +0 -6
  242. package/dist/services/processor-discovery/index.d.ts.map +0 -1
  243. package/dist/services/processor-discovery/index.js +0 -22
  244. package/dist/services/processor-discovery/index.js.map +0 -1
  245. package/dist/services/processor-discovery/processor-discovery.service.d.ts +0 -98
  246. package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +0 -1
  247. package/dist/services/processor-discovery/processor-discovery.service.js +0 -258
  248. package/dist/services/processor-discovery/processor-discovery.service.js.map +0 -1
  249. package/dist/services/processor-discovery/processor-registry.d.ts +0 -58
  250. package/dist/services/processor-discovery/processor-registry.d.ts.map +0 -1
  251. package/dist/services/processor-discovery/processor-registry.js +0 -74
  252. package/dist/services/processor-discovery/processor-registry.js.map +0 -1
  253. package/dist/services/processor-discovery/scaling-registration.service.d.ts +0 -60
  254. package/dist/services/processor-discovery/scaling-registration.service.d.ts.map +0 -1
  255. package/dist/services/processor-discovery/scaling-registration.service.js +0 -261
  256. package/dist/services/processor-discovery/scaling-registration.service.js.map +0 -1
  257. package/dist/services/processor-discovery/worker-factory.service.d.ts +0 -54
  258. package/dist/services/processor-discovery/worker-factory.service.d.ts.map +0 -1
  259. package/dist/services/processor-discovery/worker-factory.service.js +0 -185
  260. package/dist/services/processor-discovery/worker-factory.service.js.map +0 -1
  261. package/dist/services/queue-bus/entity-target.d.ts +0 -58
  262. package/dist/services/queue-bus/entity-target.d.ts.map +0 -1
  263. package/dist/services/queue-bus/entity-target.js +0 -109
  264. package/dist/services/queue-bus/entity-target.js.map +0 -1
  265. package/dist/services/queue-bus/queue-bus.types.d.ts +0 -40
  266. package/dist/services/queue-bus/queue-bus.types.d.ts.map +0 -1
  267. package/dist/services/queue-bus/queue-bus.types.js +0 -3
  268. package/dist/services/queue-bus/queue-bus.types.js.map +0 -1
  269. package/dist/services/queue-bus/queue-target.d.ts +0 -61
  270. package/dist/services/queue-bus/queue-target.d.ts.map +0 -1
  271. package/dist/services/queue-bus/queue-target.js +0 -123
  272. package/dist/services/queue-bus/queue-target.js.map +0 -1
  273. package/dist/services/queue-events-manager/index.d.ts +0 -2
  274. package/dist/services/queue-events-manager/index.d.ts.map +0 -1
  275. package/dist/services/queue-events-manager/index.js.map +0 -1
  276. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +0 -120
  277. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +0 -1
  278. package/dist/services/queue-events-manager/queue-events-manager.service.js +0 -343
  279. package/dist/services/queue-events-manager/queue-events-manager.service.js.map +0 -1
  280. package/dist/services/queue-manager/index.d.ts +0 -2
  281. package/dist/services/queue-manager/index.d.ts.map +0 -1
  282. package/dist/services/queue-manager/index.js.map +0 -1
  283. package/dist/services/queue-manager/queue-manager.service.d.ts +0 -148
  284. package/dist/services/queue-manager/queue-manager.service.d.ts.map +0 -1
  285. package/dist/services/queue-manager/queue-manager.service.js +0 -348
  286. package/dist/services/queue-manager/queue-manager.service.js.map +0 -1
  287. package/dist/services/resource-lock/index.d.ts +0 -2
  288. package/dist/services/resource-lock/index.d.ts.map +0 -1
  289. package/dist/services/resource-lock/index.js +0 -18
  290. package/dist/services/resource-lock/index.js.map +0 -1
  291. package/dist/services/resource-lock/resource-lock.service.d.ts +0 -120
  292. package/dist/services/resource-lock/resource-lock.service.d.ts.map +0 -1
  293. package/dist/services/resource-lock/resource-lock.service.js +0 -367
  294. package/dist/services/resource-lock/resource-lock.service.js.map +0 -1
  295. package/dist/services/service-queue/index.d.ts +0 -3
  296. package/dist/services/service-queue/index.d.ts.map +0 -1
  297. package/dist/services/service-queue/index.js +0 -19
  298. package/dist/services/service-queue/index.js.map +0 -1
  299. package/dist/services/service-queue/service-queue.service.d.ts +0 -199
  300. package/dist/services/service-queue/service-queue.service.d.ts.map +0 -1
  301. package/dist/services/service-queue/service-queue.service.js +0 -617
  302. package/dist/services/service-queue/service-queue.service.js.map +0 -1
  303. package/dist/services/service-queue/service-queue.types.d.ts +0 -32
  304. package/dist/services/service-queue/service-queue.types.d.ts.map +0 -1
  305. package/dist/services/service-queue/service-queue.types.js +0 -27
  306. package/dist/services/service-queue/service-queue.types.js.map +0 -1
  307. package/dist/services/shutdown-state/index.d.ts +0 -2
  308. package/dist/services/shutdown-state/index.d.ts.map +0 -1
  309. package/dist/services/shutdown-state/index.js +0 -18
  310. package/dist/services/shutdown-state/index.js.map +0 -1
  311. package/dist/services/shutdown-state/shutdown-state.service.d.ts +0 -69
  312. package/dist/services/shutdown-state/shutdown-state.service.d.ts.map +0 -1
  313. package/dist/services/shutdown-state/shutdown-state.service.js +0 -127
  314. package/dist/services/shutdown-state/shutdown-state.service.js.map +0 -1
  315. package/dist/services/spawn-queue/index.d.ts +0 -2
  316. package/dist/services/spawn-queue/index.d.ts.map +0 -1
  317. package/dist/services/spawn-queue/index.js.map +0 -1
  318. package/dist/services/spawn-queue/spawn-queue.service.d.ts +0 -119
  319. package/dist/services/spawn-queue/spawn-queue.service.d.ts.map +0 -1
  320. package/dist/services/spawn-queue/spawn-queue.service.js +0 -273
  321. package/dist/services/spawn-queue/spawn-queue.service.js.map +0 -1
  322. package/dist/services/worker-manager/index.d.ts +0 -2
  323. package/dist/services/worker-manager/index.d.ts.map +0 -1
  324. package/dist/services/worker-manager/index.js +0 -18
  325. package/dist/services/worker-manager/index.js.map +0 -1
  326. package/dist/services/worker-manager/worker-manager.service.d.ts +0 -221
  327. package/dist/services/worker-manager/worker-manager.service.d.ts.map +0 -1
  328. package/dist/services/worker-manager/worker-manager.service.js +0 -591
  329. package/dist/services/worker-manager/worker-manager.service.js.map +0 -1
  330. package/dist/utils/helpers.d.ts +0 -5
  331. package/dist/utils/helpers.d.ts.map +0 -1
  332. package/dist/utils/helpers.js +0 -21
  333. package/dist/utils/helpers.js.map +0 -1
  334. package/dist/utils/job.utils.d.ts +0 -50
  335. package/dist/utils/job.utils.d.ts.map +0 -1
  336. package/dist/utils/job.utils.js +0 -89
  337. package/dist/utils/job.utils.js.map +0 -1
@@ -1,65 +0,0 @@
1
- import { EntityScalerOptions } from './interfaces';
2
- /**
3
- * @EntityScaler class decorator
4
- *
5
- * Marks a class as an entity scaler provider for a specific entity type.
6
- * Methods decorated with @GetActiveEntities, @GetDesiredWorkerCount,
7
- * @OnSpawnWorker, and @OnTerminateWorker define the scaling behavior.
8
- *
9
- * @example
10
- * ```typescript
11
- * @EntityScaler({
12
- * entityType: 'table',
13
- * maxWorkersPerEntity: 1,
14
- * })
15
- * @Injectable()
16
- * export class TableEntityScaler {
17
- * constructor(private readonly redis: Redis) {}
18
- *
19
- * @GetActiveEntities()
20
- * async getAllTables(): Promise<string[]> {
21
- * // Return all table IDs that need workers
22
- * }
23
- *
24
- * @GetDesiredWorkerCount()
25
- * async getWorkerCount(entityId: string): Promise<number> {
26
- * return 1; // Each table gets 1 worker
27
- * }
28
- *
29
- * @OnSpawnWorker()
30
- * async spawnWorker(entityId: string): Promise<void> {
31
- * // Called when a worker should be spawned
32
- * }
33
- * }
34
- * ```
35
- */
36
- export declare function EntityScaler(options: EntityScalerOptions): ClassDecorator;
37
- /**
38
- * @GetActiveEntities method decorator
39
- *
40
- * Marks a method that returns all active entity IDs for scaling decisions.
41
- * Used within an @EntityScaler class.
42
- */
43
- export declare function GetActiveEntities(): MethodDecorator;
44
- /**
45
- * @GetDesiredWorkerCount method decorator
46
- *
47
- * Marks a method that returns the desired worker count for an entity.
48
- * Used within an @EntityScaler class.
49
- */
50
- export declare function GetDesiredWorkerCount(): MethodDecorator;
51
- /**
52
- * @OnSpawnWorker method decorator
53
- *
54
- * Marks a method that is called when a worker should be spawned.
55
- * Used within an @EntityScaler class.
56
- */
57
- export declare function OnSpawnWorker(): MethodDecorator;
58
- /**
59
- * @OnTerminateWorker method decorator
60
- *
61
- * Marks a method that is called when a worker should be terminated.
62
- * Used within an @EntityScaler class.
63
- */
64
- export declare function OnTerminateWorker(): MethodDecorator;
65
- //# sourceMappingURL=scaler.decorators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scaler.decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/scaler.decorators.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,cAAc,CAQzE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,eAAe,CAcnD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAcvD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,eAAe,CAc/C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,eAAe,CAcnD"}
@@ -1,103 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntityScaler = EntityScaler;
4
- exports.GetActiveEntities = GetActiveEntities;
5
- exports.GetDesiredWorkerCount = GetDesiredWorkerCount;
6
- exports.OnSpawnWorker = OnSpawnWorker;
7
- exports.OnTerminateWorker = OnTerminateWorker;
8
- const constants_1 = require("./constants");
9
- /**
10
- * @EntityScaler class decorator
11
- *
12
- * Marks a class as an entity scaler provider for a specific entity type.
13
- * Methods decorated with @GetActiveEntities, @GetDesiredWorkerCount,
14
- * @OnSpawnWorker, and @OnTerminateWorker define the scaling behavior.
15
- *
16
- * @example
17
- * ```typescript
18
- * @EntityScaler({
19
- * entityType: 'table',
20
- * maxWorkersPerEntity: 1,
21
- * })
22
- * @Injectable()
23
- * export class TableEntityScaler {
24
- * constructor(private readonly redis: Redis) {}
25
- *
26
- * @GetActiveEntities()
27
- * async getAllTables(): Promise<string[]> {
28
- * // Return all table IDs that need workers
29
- * }
30
- *
31
- * @GetDesiredWorkerCount()
32
- * async getWorkerCount(entityId: string): Promise<number> {
33
- * return 1; // Each table gets 1 worker
34
- * }
35
- *
36
- * @OnSpawnWorker()
37
- * async spawnWorker(entityId: string): Promise<void> {
38
- * // Called when a worker should be spawned
39
- * }
40
- * }
41
- * ```
42
- */
43
- function EntityScaler(options) {
44
- return (target) => {
45
- Reflect.defineMetadata(constants_1.ENTITY_SCALER_METADATA, options, target);
46
- if (!Reflect.hasMetadata('injectable', target)) {
47
- Reflect.defineMetadata('injectable', true, target);
48
- }
49
- };
50
- }
51
- /**
52
- * @GetActiveEntities method decorator
53
- *
54
- * Marks a method that returns all active entity IDs for scaling decisions.
55
- * Used within an @EntityScaler class.
56
- */
57
- function GetActiveEntities() {
58
- return (target, propertyKey, descriptor) => {
59
- Reflect.defineMetadata(constants_1.GET_ACTIVE_ENTITIES_METADATA, true, target, propertyKey);
60
- Reflect.defineMetadata(constants_1.GET_ACTIVE_ENTITIES_METADATA + ':method', String(propertyKey), target.constructor);
61
- return descriptor;
62
- };
63
- }
64
- /**
65
- * @GetDesiredWorkerCount method decorator
66
- *
67
- * Marks a method that returns the desired worker count for an entity.
68
- * Used within an @EntityScaler class.
69
- */
70
- function GetDesiredWorkerCount() {
71
- return (target, propertyKey, descriptor) => {
72
- Reflect.defineMetadata(constants_1.GET_DESIRED_WORKER_COUNT_METADATA, true, target, propertyKey);
73
- Reflect.defineMetadata(constants_1.GET_DESIRED_WORKER_COUNT_METADATA + ':method', String(propertyKey), target.constructor);
74
- return descriptor;
75
- };
76
- }
77
- /**
78
- * @OnSpawnWorker method decorator
79
- *
80
- * Marks a method that is called when a worker should be spawned.
81
- * Used within an @EntityScaler class.
82
- */
83
- function OnSpawnWorker() {
84
- return (target, propertyKey, descriptor) => {
85
- Reflect.defineMetadata(constants_1.ON_SPAWN_WORKER_METADATA, true, target, propertyKey);
86
- Reflect.defineMetadata(constants_1.ON_SPAWN_WORKER_METADATA + ':method', String(propertyKey), target.constructor);
87
- return descriptor;
88
- };
89
- }
90
- /**
91
- * @OnTerminateWorker method decorator
92
- *
93
- * Marks a method that is called when a worker should be terminated.
94
- * Used within an @EntityScaler class.
95
- */
96
- function OnTerminateWorker() {
97
- return (target, propertyKey, descriptor) => {
98
- Reflect.defineMetadata(constants_1.ON_TERMINATE_WORKER_METADATA, true, target, propertyKey);
99
- Reflect.defineMetadata(constants_1.ON_TERMINATE_WORKER_METADATA + ':method', String(propertyKey), target.constructor);
100
- return descriptor;
101
- };
102
- }
103
- //# sourceMappingURL=scaler.decorators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scaler.decorators.js","sourceRoot":"","sources":["../../src/decorators/scaler.decorators.ts"],"names":[],"mappings":";;AA2CA,oCAQC;AAQD,8CAcC;AAQD,sDAcC;AAQD,sCAcC;AAQD,8CAcC;AA3ID,2CAMqB;AAGrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,YAAY,CAAC,OAA4B;IACvD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,kCAAsB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,CACL,MAAc,EACd,WAA4B,EAC5B,UAA8B,EAC9B,EAAE;QACF,OAAO,CAAC,cAAc,CAAC,wCAA4B,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChF,OAAO,CAAC,cAAc,CACpB,wCAA4B,GAAG,SAAS,EACxC,MAAM,CAAC,WAAW,CAAC,EACnB,MAAM,CAAC,WAAW,CACnB,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB;IACnC,OAAO,CACL,MAAc,EACd,WAA4B,EAC5B,UAA8B,EAC9B,EAAE;QACF,OAAO,CAAC,cAAc,CAAC,6CAAiC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACrF,OAAO,CAAC,cAAc,CACpB,6CAAiC,GAAG,SAAS,EAC7C,MAAM,CAAC,WAAW,CAAC,EACnB,MAAM,CAAC,WAAW,CACnB,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa;IAC3B,OAAO,CACL,MAAc,EACd,WAA4B,EAC5B,UAA8B,EAC9B,EAAE;QACF,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5E,OAAO,CAAC,cAAc,CACpB,oCAAwB,GAAG,SAAS,EACpC,MAAM,CAAC,WAAW,CAAC,EACnB,MAAM,CAAC,WAAW,CACnB,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,CACL,MAAc,EACd,WAA4B,EAC5B,UAA8B,EAC9B,EAAE;QACF,OAAO,CAAC,cAAc,CAAC,wCAA4B,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChF,OAAO,CAAC,cAAc,CACpB,wCAA4B,GAAG,SAAS,EACxC,MAAM,CAAC,WAAW,CAAC,EACnB,MAAM,CAAC,WAAW,CACnB,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,18 +0,0 @@
1
- import { Type } from '@nestjs/common';
2
- /**
3
- * Check if a class is a WorkerProcessor
4
- */
5
- export declare function isWorkerProcessor(target: Type<any>): boolean;
6
- /**
7
- * Check if a class is an EntityScaler
8
- */
9
- export declare function isEntityScaler(target: Type<any>): boolean;
10
- /**
11
- * Check if a class is a JobCommand
12
- */
13
- export declare function isJobCommand(target: Function): boolean;
14
- /**
15
- * Check if a class is a JobQuery
16
- */
17
- export declare function isJobQuery(target: Function): boolean;
18
- //# sourceMappingURL=type-guards.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-guards.d.ts","sourceRoot":"","sources":["../../src/decorators/type-guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAQtC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAE5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAEpD"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isWorkerProcessor = isWorkerProcessor;
4
- exports.isEntityScaler = isEntityScaler;
5
- exports.isJobCommand = isJobCommand;
6
- exports.isJobQuery = isJobQuery;
7
- const constants_1 = require("./constants");
8
- /**
9
- * Check if a class is a WorkerProcessor
10
- */
11
- function isWorkerProcessor(target) {
12
- return Reflect.hasMetadata(constants_1.WORKER_PROCESSOR_METADATA, target);
13
- }
14
- /**
15
- * Check if a class is an EntityScaler
16
- */
17
- function isEntityScaler(target) {
18
- return Reflect.hasMetadata(constants_1.ENTITY_SCALER_METADATA, target);
19
- }
20
- /**
21
- * Check if a class is a JobCommand
22
- */
23
- function isJobCommand(target) {
24
- return Reflect.hasMetadata(constants_1.JOB_COMMAND_METADATA, target);
25
- }
26
- /**
27
- * Check if a class is a JobQuery
28
- */
29
- function isJobQuery(target) {
30
- return Reflect.hasMetadata(constants_1.JOB_QUERY_METADATA, target);
31
- }
32
- //# sourceMappingURL=type-guards.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-guards.js","sourceRoot":"","sources":["../../src/decorators/type-guards.ts"],"names":[],"mappings":";;AAWA,8CAEC;AAKD,wCAEC;AAKD,oCAEC;AAKD,gCAEC;AAjCD,2CAKqB;AAErB;;GAEG;AACH,SAAgB,iBAAiB,CAAC,MAAiB;IACjD,OAAO,OAAO,CAAC,WAAW,CAAC,qCAAyB,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,MAAiB;IAC9C,OAAO,OAAO,CAAC,WAAW,CAAC,kCAAsB,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,MAAgB;IAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,MAAgB;IACzC,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC"}
@@ -1,58 +0,0 @@
1
- import { WorkerProcessorOptions } from './interfaces';
2
- /**
3
- * @WorkerProcessor class decorator
4
- *
5
- * Marks a class as a worker processor for a specific entity type.
6
- * Combined with @JobHandler method decorators, this enables declarative
7
- * job processing with automatic worker creation and management.
8
- *
9
- * @example
10
- * ```typescript
11
- * @WorkerProcessor({
12
- * entityType: 'table',
13
- * queueName: (tableId) => `${tableId}-queue`,
14
- * workerName: (tableId) => `table-worker-${tableId}`,
15
- * workerConfig: {
16
- * concurrency: 1,
17
- * heartbeatTTL: 3,
18
- * }
19
- * })
20
- * @Injectable()
21
- * export class TableWorkerProcessor {
22
- * constructor(private readonly commandBus: CommandBus) {}
23
- *
24
- * @JobHandler('make-bet')
25
- * async handleMakeBet(job: Job<MakeBetData>, entityId: string) {
26
- * return this.commandBus.execute(new MakeBetCommand(entityId, job.data));
27
- * }
28
- *
29
- * @JobHandler('*') // Wildcard handler for any unmatched job
30
- * async handleDynamic(job: Job, entityId: string) {
31
- * // Dynamic handling
32
- * }
33
- * }
34
- * ```
35
- */
36
- export declare function WorkerProcessor(options: WorkerProcessorOptions): ClassDecorator;
37
- /**
38
- * @JobHandler method decorator
39
- *
40
- * Marks a method as a handler for a specific job name.
41
- * Use '*' as jobName to create a wildcard handler that catches
42
- * any jobs not matched by specific handlers.
43
- *
44
- * @example
45
- * ```typescript
46
- * @JobHandler('make-bet')
47
- * async handleMakeBet(job: Job<MakeBetData>, entityId: string) {
48
- * // Handle make-bet jobs
49
- * }
50
- *
51
- * @JobHandler('*')
52
- * async handleOther(job: Job, entityId: string) {
53
- * // Handle any other jobs
54
- * }
55
- * ```
56
- */
57
- export declare function JobHandler(jobName: string): MethodDecorator;
58
- //# sourceMappingURL=worker.decorators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/worker.decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAsB,MAAM,cAAc,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,cAAc,CAc/E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAyB3D"}
@@ -1,92 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WorkerProcessor = WorkerProcessor;
4
- exports.JobHandler = JobHandler;
5
- const constants_1 = require("./constants");
6
- /**
7
- * @WorkerProcessor class decorator
8
- *
9
- * Marks a class as a worker processor for a specific entity type.
10
- * Combined with @JobHandler method decorators, this enables declarative
11
- * job processing with automatic worker creation and management.
12
- *
13
- * @example
14
- * ```typescript
15
- * @WorkerProcessor({
16
- * entityType: 'table',
17
- * queueName: (tableId) => `${tableId}-queue`,
18
- * workerName: (tableId) => `table-worker-${tableId}`,
19
- * workerConfig: {
20
- * concurrency: 1,
21
- * heartbeatTTL: 3,
22
- * }
23
- * })
24
- * @Injectable()
25
- * export class TableWorkerProcessor {
26
- * constructor(private readonly commandBus: CommandBus) {}
27
- *
28
- * @JobHandler('make-bet')
29
- * async handleMakeBet(job: Job<MakeBetData>, entityId: string) {
30
- * return this.commandBus.execute(new MakeBetCommand(entityId, job.data));
31
- * }
32
- *
33
- * @JobHandler('*') // Wildcard handler for any unmatched job
34
- * async handleDynamic(job: Job, entityId: string) {
35
- * // Dynamic handling
36
- * }
37
- * }
38
- * ```
39
- */
40
- function WorkerProcessor(options) {
41
- return (target) => {
42
- // Store the options with defaults
43
- const metadata = {
44
- ...options,
45
- overrideDefaults: options.overrideDefaults ?? false,
46
- };
47
- Reflect.defineMetadata(constants_1.WORKER_PROCESSOR_METADATA, metadata, target);
48
- // Mark as injectable if not already
49
- if (!Reflect.hasMetadata('injectable', target)) {
50
- Reflect.defineMetadata('injectable', true, target);
51
- }
52
- };
53
- }
54
- /**
55
- * @JobHandler method decorator
56
- *
57
- * Marks a method as a handler for a specific job name.
58
- * Use '*' as jobName to create a wildcard handler that catches
59
- * any jobs not matched by specific handlers.
60
- *
61
- * @example
62
- * ```typescript
63
- * @JobHandler('make-bet')
64
- * async handleMakeBet(job: Job<MakeBetData>, entityId: string) {
65
- * // Handle make-bet jobs
66
- * }
67
- *
68
- * @JobHandler('*')
69
- * async handleOther(job: Job, entityId: string) {
70
- * // Handle any other jobs
71
- * }
72
- * ```
73
- */
74
- function JobHandler(jobName) {
75
- return (target, propertyKey, descriptor) => {
76
- const methodName = String(propertyKey);
77
- const isWildcard = jobName === '*';
78
- // Store handler metadata on the method
79
- const metadata = {
80
- jobName,
81
- methodName,
82
- isWildcard,
83
- };
84
- Reflect.defineMetadata(constants_1.JOB_HANDLER_METADATA, metadata, target, propertyKey);
85
- // Collect all handlers on the class
86
- const existingHandlers = Reflect.getMetadata(constants_1.JOB_HANDLER_METADATA, target.constructor) || [];
87
- existingHandlers.push(metadata);
88
- Reflect.defineMetadata(constants_1.JOB_HANDLER_METADATA, existingHandlers, target.constructor);
89
- return descriptor;
90
- };
91
- }
92
- //# sourceMappingURL=worker.decorators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.decorators.js","sourceRoot":"","sources":["../../src/decorators/worker.decorators.ts"],"names":[],"mappings":";;AAqCA,0CAcC;AAsBD,gCAyBC;AAlGD,2CAA8E;AAG9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,eAAe,CAAC,OAA+B;IAC7D,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,kCAAkC;QAClC,MAAM,QAAQ,GAAG;YACf,GAAG,OAAO;YACV,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;SACpD,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,qCAAyB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEpE,oCAAoC;QACpC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,CACL,MAAc,EACd,WAA4B,EAC5B,UAA8B,EAC9B,EAAE;QACF,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,OAAO,KAAK,GAAG,CAAC;QAEnC,uCAAuC;QACvC,MAAM,QAAQ,GAAuB;YACnC,OAAO;YACP,UAAU;YACV,UAAU;SACX,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,gCAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE5E,oCAAoC;QACpC,MAAM,gBAAgB,GACpB,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,gCAAoB,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAEnF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,71 +0,0 @@
1
- /**
2
- * Event types for pub/sub communication
3
- */
4
- export type AtomicQueueEventType = 'worker:shutdown' | 'worker:ready' | 'worker:closed' | 'job:completed' | 'job:failed' | 'job:progress' | 'queue:closed' | 'custom';
5
- /**
6
- * Event payload structure
7
- */
8
- export interface IAtomicQueueEvent<T = unknown> {
9
- type: AtomicQueueEventType;
10
- nodeId: string;
11
- workerId?: string;
12
- entityId?: string;
13
- entityType?: string;
14
- timestamp: Date;
15
- data?: T;
16
- }
17
- /**
18
- * Event bus interface for internal pub/sub
19
- */
20
- export interface IEventBus {
21
- /**
22
- * Publish an event
23
- */
24
- publish<T>(channel: string, event: IAtomicQueueEvent<T>): Promise<void>;
25
- /**
26
- * Subscribe to a channel
27
- */
28
- subscribe(channel: string, handler: (event: IAtomicQueueEvent) => void | Promise<void>): Promise<void>;
29
- /**
30
- * Unsubscribe from a channel
31
- */
32
- unsubscribe(channel: string): Promise<void>;
33
- /**
34
- * Subscribe to worker shutdown events for a specific worker
35
- */
36
- subscribeToWorkerShutdown(workerName: string, handler: () => void | Promise<void>): Promise<void>;
37
- }
38
- /**
39
- * Socket connection tracking interface
40
- */
41
- export interface IConnectionTracker {
42
- /**
43
- * Track a socket connection for an entity
44
- */
45
- trackConnection(entityType: string, entityId: string, socketId: string, nodeId: string): Promise<void>;
46
- /**
47
- * Untrack a socket connection
48
- */
49
- untrackConnection(entityType: string, entityId: string, socketId: string): Promise<void>;
50
- /**
51
- * Get all socket connections for an entity
52
- */
53
- getEntityConnections(entityType: string, entityId: string): Promise<string[]>;
54
- /**
55
- * Get entity connections for a specific node
56
- */
57
- getEntityNodeConnections(entityType: string, entityId: string, nodeId: string): Promise<string[]>;
58
- /**
59
- * Untrack all connections for current node
60
- */
61
- untrackNodeConnections(): Promise<void>;
62
- /**
63
- * Check if entity has active connections
64
- */
65
- hasActiveConnections(entityType: string, entityId: string): Promise<boolean>;
66
- /**
67
- * Get node ID for a socket connection
68
- */
69
- getNodeForSocket(entityType: string, entityId: string, socketId: string): Promise<string | null>;
70
- }
71
- //# sourceMappingURL=event.interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/event.interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,cAAc,GACd,eAAe,GACf,eAAe,GACf,YAAY,GACZ,cAAc,GACd,cAAc,GACd,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC5C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;OAEG;IACH,SAAS,CACP,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC1D,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C;;OAEG;IACH,yBAAyB,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzF;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9E;;OAEG;IACH,wBAAwB,CACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAErB;;OAEG;IACH,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAClG"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=event.interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.interfaces.js","sourceRoot":"","sources":["../../../src/domain/interfaces/event.interfaces.ts"],"names":[],"mappings":""}
@@ -1,69 +0,0 @@
1
- /**
2
- * Index entry for tracking jobs, workers, queues
3
- */
4
- export interface IIndexEntry {
5
- id: string;
6
- type: 'job' | 'worker' | 'queue' | 'death' | 'custom';
7
- entityId: string;
8
- entityType: string;
9
- createdAt: Date;
10
- metadata?: Record<string, unknown>;
11
- }
12
- /**
13
- * Index manager interface for tracking various entities
14
- */
15
- export interface IIndexManager {
16
- /**
17
- * Index a job for an entity
18
- */
19
- indexJob(entityType: string, entityId: string, jobId: string): Promise<void>;
20
- /**
21
- * Remove job index
22
- */
23
- removeJobIndex(entityType: string, entityId: string, jobId: string): Promise<void>;
24
- /**
25
- * Get all job IDs for an entity
26
- */
27
- getEntityJobs(entityType: string, entityId: string): Promise<string[]>;
28
- /**
29
- * Get all entities with jobs
30
- */
31
- getEntitiesWithJobs(entityType: string): Promise<Record<string, number>>;
32
- /**
33
- * Index a worker death signal
34
- */
35
- indexWorkerDeath(entityType: string, entityId: string, deathId: string): Promise<void>;
36
- /**
37
- * Remove worker death index
38
- */
39
- removeWorkerDeathIndex(entityType: string, entityId: string, deathId: string): Promise<void>;
40
- /**
41
- * Get queued worker deaths for an entity
42
- */
43
- getQueuedWorkerDeaths(entityType: string, entityId: string): Promise<string[]>;
44
- /**
45
- * Index entity queue
46
- */
47
- indexEntityQueue(entityType: string, entityId: string): Promise<void>;
48
- /**
49
- * Remove entity queue index
50
- */
51
- removeEntityQueueIndex(entityType: string, entityId: string): Promise<void>;
52
- /**
53
- * Get all entities with active queues
54
- */
55
- getEntitiesWithQueues(entityType: string): Promise<string[]>;
56
- /**
57
- * Index a queue death signal
58
- */
59
- indexQueueDeath(entityType: string, entityId: string): Promise<void>;
60
- /**
61
- * Remove queue death index
62
- */
63
- removeQueueDeathIndex(entityType: string, entityId: string): Promise<void>;
64
- /**
65
- * Get all entities with queued queue deaths
66
- */
67
- getEntitiesWithQueuedQueueDeaths(entityType: string): Promise<string[]>;
68
- }
69
- //# sourceMappingURL=index-tracking.interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-tracking.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/index-tracking.interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEvE;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzE;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvF;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7F;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE/E;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7D;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3E;;OAEG;IACH,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACzE"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=index-tracking.interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-tracking.interfaces.js","sourceRoot":"","sources":["../../../src/domain/interfaces/index-tracking.interfaces.ts"],"names":[],"mappings":""}
@@ -1,54 +0,0 @@
1
- /**
2
- * Lock state for a resource
3
- */
4
- export interface IResourceLock {
5
- resourceId: string;
6
- resourceType: string;
7
- ownerId: string;
8
- ownerType: string;
9
- acquiredAt: Date;
10
- expiresAt: Date;
11
- metadata?: Record<string, unknown>;
12
- }
13
- /**
14
- * Lock acquisition result
15
- */
16
- export interface ILockResult {
17
- acquired: boolean;
18
- lock?: IResourceLock;
19
- reason?: string;
20
- }
21
- /**
22
- * Resource lock service interface for distributed locking
23
- */
24
- export interface IResourceLockService {
25
- /**
26
- * Acquire a lock on a resource
27
- */
28
- acquireLock(resourceType: string, resourceId: string, ownerId: string, ownerType: string, ttlSeconds?: number, metadata?: Record<string, unknown>): Promise<ILockResult>;
29
- /**
30
- * Release a lock on a resource
31
- */
32
- releaseLock(resourceType: string, resourceId: string): Promise<boolean>;
33
- /**
34
- * Check if a resource is locked
35
- */
36
- isLocked(resourceType: string, resourceId: string): Promise<boolean>;
37
- /**
38
- * Get lock info for a resource
39
- */
40
- getLockInfo(resourceType: string, resourceId: string): Promise<IResourceLock | null>;
41
- /**
42
- * Get all locked resources of a type for an owner
43
- */
44
- getOwnerLocks(ownerType: string, ownerId: string): Promise<IResourceLock[]>;
45
- /**
46
- * Get available (unlocked) resource from a pool
47
- */
48
- getAvailableResource(resourceType: string, candidateIds: string[], ownerId: string, ownerType: string, ttlSeconds?: number): Promise<ILockResult>;
49
- /**
50
- * Extend lock TTL
51
- */
52
- extendLock(resourceType: string, resourceId: string, ttlSeconds: number): Promise<boolean>;
53
- }
54
- //# sourceMappingURL=lock.interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lock.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/lock.interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,WAAW,CACT,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExE;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErE;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAErF;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE5E;;OAEG;IACH,oBAAoB,CAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lock.interfaces.js","sourceRoot":"","sources":["../../../src/domain/interfaces/lock.interfaces.ts"],"names":[],"mappings":""}