@effect/cluster 0.28.3 → 0.29.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 (626) hide show
  1. package/ClusterError/package.json +6 -0
  2. package/ClusterMetrics/package.json +6 -0
  3. package/ClusterSchema/package.json +6 -0
  4. package/DeliverAt/package.json +6 -0
  5. package/Entity/package.json +6 -0
  6. package/EntityAddress/package.json +6 -0
  7. package/EntityId/package.json +6 -0
  8. package/EntityType/package.json +6 -0
  9. package/Envelope/package.json +6 -0
  10. package/HttpCommon/package.json +6 -0
  11. package/HttpRunner/package.json +6 -0
  12. package/HttpShardManager/package.json +6 -0
  13. package/MachineId/package.json +6 -0
  14. package/MessageStorage/package.json +6 -0
  15. package/README.md +2 -2
  16. package/Reply/package.json +6 -0
  17. package/Runner/package.json +6 -0
  18. package/RunnerAddress/package.json +6 -0
  19. package/RunnerHealth/package.json +6 -0
  20. package/RunnerServer/package.json +6 -0
  21. package/Runners/package.json +6 -0
  22. package/ShardStorage/package.json +6 -0
  23. package/Singleton/package.json +6 -0
  24. package/SingletonAddress/package.json +6 -0
  25. package/Snowflake/package.json +6 -0
  26. package/SocketRunner/package.json +6 -0
  27. package/SocketShardManager/package.json +6 -0
  28. package/SqlMessageStorage/package.json +6 -0
  29. package/SqlShardStorage/package.json +6 -0
  30. package/SynchronizedClock/package.json +6 -0
  31. package/dist/cjs/ClusterError.js +180 -0
  32. package/dist/cjs/ClusterError.js.map +1 -0
  33. package/dist/cjs/ClusterMetrics.js +63 -0
  34. package/dist/cjs/ClusterMetrics.js.map +1 -0
  35. package/dist/cjs/{Pods.js → ClusterSchema.js} +10 -22
  36. package/dist/cjs/ClusterSchema.js.map +1 -0
  37. package/dist/cjs/DeliverAt.js +30 -0
  38. package/dist/cjs/DeliverAt.js.map +1 -0
  39. package/dist/cjs/Entity.js +187 -0
  40. package/dist/cjs/Entity.js.map +1 -0
  41. package/dist/cjs/EntityAddress.js +54 -0
  42. package/dist/cjs/EntityAddress.js.map +1 -0
  43. package/dist/cjs/{AtLeastOnce.js → EntityId.js} +6 -7
  44. package/dist/cjs/EntityId.js.map +1 -0
  45. package/dist/cjs/{ShardManagerClient.js → EntityType.js} +5 -16
  46. package/dist/cjs/EntityType.js.map +1 -0
  47. package/dist/cjs/Envelope.js +168 -0
  48. package/dist/cjs/Envelope.js.map +1 -0
  49. package/dist/cjs/HttpCommon.js +49 -0
  50. package/dist/cjs/HttpCommon.js.map +1 -0
  51. package/dist/cjs/HttpRunner.js +108 -0
  52. package/dist/cjs/HttpRunner.js.map +1 -0
  53. package/dist/cjs/HttpShardManager.js +140 -0
  54. package/dist/cjs/HttpShardManager.js.map +1 -0
  55. package/dist/cjs/{AtLeastOnceStorage.js → MachineId.js} +11 -9
  56. package/dist/cjs/MachineId.js.map +1 -0
  57. package/dist/cjs/Message.js +99 -18
  58. package/dist/cjs/Message.js.map +1 -1
  59. package/dist/cjs/MessageStorage.js +356 -0
  60. package/dist/cjs/MessageStorage.js.map +1 -0
  61. package/dist/cjs/Reply.js +200 -0
  62. package/dist/cjs/Reply.js.map +1 -0
  63. package/dist/cjs/Runner.js +79 -0
  64. package/dist/cjs/Runner.js.map +1 -0
  65. package/dist/cjs/RunnerAddress.js +63 -0
  66. package/dist/cjs/RunnerAddress.js.map +1 -0
  67. package/dist/cjs/RunnerHealth.js +68 -0
  68. package/dist/cjs/RunnerHealth.js.map +1 -0
  69. package/dist/cjs/RunnerServer.js +125 -0
  70. package/dist/cjs/RunnerServer.js.map +1 -0
  71. package/dist/cjs/Runners.js +344 -0
  72. package/dist/cjs/Runners.js.map +1 -0
  73. package/dist/cjs/ShardId.js +7 -46
  74. package/dist/cjs/ShardId.js.map +1 -1
  75. package/dist/cjs/ShardManager.js +493 -8
  76. package/dist/cjs/ShardManager.js.map +1 -1
  77. package/dist/cjs/ShardStorage.js +139 -0
  78. package/dist/cjs/ShardStorage.js.map +1 -0
  79. package/dist/cjs/Sharding.js +732 -88
  80. package/dist/cjs/Sharding.js.map +1 -1
  81. package/dist/cjs/ShardingConfig.js +85 -18
  82. package/dist/cjs/ShardingConfig.js.map +1 -1
  83. package/dist/cjs/ShardingRegistrationEvent.js +26 -32
  84. package/dist/cjs/ShardingRegistrationEvent.js.map +1 -1
  85. package/dist/cjs/{ManagerConfig.js → Singleton.js} +11 -20
  86. package/dist/cjs/Singleton.js.map +1 -0
  87. package/dist/cjs/SingletonAddress.js +50 -0
  88. package/dist/cjs/SingletonAddress.js.map +1 -0
  89. package/dist/cjs/Snowflake.js +133 -0
  90. package/dist/cjs/Snowflake.js.map +1 -0
  91. package/dist/cjs/SocketRunner.js +40 -0
  92. package/dist/cjs/SocketRunner.js.map +1 -0
  93. package/dist/cjs/SocketShardManager.js +33 -0
  94. package/dist/cjs/SocketShardManager.js.map +1 -0
  95. package/dist/cjs/SqlMessageStorage.js +668 -0
  96. package/dist/cjs/SqlMessageStorage.js.map +1 -0
  97. package/dist/cjs/SqlShardStorage.js +228 -0
  98. package/dist/cjs/SqlShardStorage.js.map +1 -0
  99. package/dist/cjs/SynchronizedClock.js +66 -0
  100. package/dist/cjs/SynchronizedClock.js.map +1 -0
  101. package/dist/cjs/index.js +57 -45
  102. package/dist/cjs/internal/entityManager.js +311 -143
  103. package/dist/cjs/internal/entityManager.js.map +1 -1
  104. package/dist/cjs/internal/entityReaper.js +47 -0
  105. package/dist/cjs/internal/entityReaper.js.map +1 -0
  106. package/dist/cjs/internal/hash.js +20 -0
  107. package/dist/cjs/internal/hash.js.map +1 -0
  108. package/dist/cjs/internal/interruptors.js +9 -0
  109. package/dist/cjs/internal/interruptors.js.map +1 -0
  110. package/dist/cjs/internal/resourceMap.js +88 -0
  111. package/dist/cjs/internal/resourceMap.js.map +1 -0
  112. package/dist/cjs/internal/resourceRef.js +92 -0
  113. package/dist/cjs/internal/resourceRef.js.map +1 -0
  114. package/dist/cjs/internal/shardManager.js +219 -235
  115. package/dist/cjs/internal/shardManager.js.map +1 -1
  116. package/dist/dts/ClusterError.d.ts +169 -0
  117. package/dist/dts/ClusterError.d.ts.map +1 -0
  118. package/dist/dts/ClusterMetrics.d.ts +50 -0
  119. package/dist/dts/ClusterMetrics.d.ts.map +1 -0
  120. package/dist/dts/ClusterSchema.d.ts +13 -0
  121. package/dist/dts/ClusterSchema.d.ts.map +1 -0
  122. package/dist/dts/DeliverAt.d.ts +27 -0
  123. package/dist/dts/DeliverAt.d.ts.map +1 -0
  124. package/dist/dts/Entity.d.ts +180 -0
  125. package/dist/dts/Entity.d.ts.map +1 -0
  126. package/dist/dts/EntityAddress.d.ts +55 -0
  127. package/dist/dts/EntityAddress.d.ts.map +1 -0
  128. package/dist/dts/EntityId.d.ts +15 -0
  129. package/dist/dts/EntityId.d.ts.map +1 -0
  130. package/dist/dts/EntityType.d.ts +15 -0
  131. package/dist/dts/EntityType.d.ts.map +1 -0
  132. package/dist/dts/Envelope.d.ts +252 -0
  133. package/dist/dts/Envelope.d.ts.map +1 -0
  134. package/dist/dts/HttpCommon.d.ts +25 -0
  135. package/dist/dts/HttpCommon.d.ts.map +1 -0
  136. package/dist/dts/HttpRunner.d.ts +76 -0
  137. package/dist/dts/HttpRunner.d.ts.map +1 -0
  138. package/dist/dts/HttpShardManager.d.ts +119 -0
  139. package/dist/dts/HttpShardManager.d.ts.map +1 -0
  140. package/dist/dts/MachineId.d.ts +20 -0
  141. package/dist/dts/MachineId.d.ts.map +1 -0
  142. package/dist/dts/Message.d.ts +91 -74
  143. package/dist/dts/Message.d.ts.map +1 -1
  144. package/dist/dts/MessageStorage.d.ts +336 -0
  145. package/dist/dts/MessageStorage.d.ts.map +1 -0
  146. package/dist/dts/Reply.d.ts +171 -0
  147. package/dist/dts/Reply.d.ts.map +1 -0
  148. package/dist/dts/Runner.d.ts +81 -0
  149. package/dist/dts/Runner.d.ts.map +1 -0
  150. package/dist/dts/RunnerAddress.d.ts +56 -0
  151. package/dist/dts/RunnerAddress.d.ts.map +1 -0
  152. package/dist/dts/RunnerHealth.d.ts +54 -0
  153. package/dist/dts/RunnerHealth.d.ts.map +1 -0
  154. package/dist/dts/RunnerServer.d.ts +44 -0
  155. package/dist/dts/RunnerServer.d.ts.map +1 -0
  156. package/dist/dts/Runners.d.ts +161 -0
  157. package/dist/dts/Runners.d.ts.map +1 -0
  158. package/dist/dts/ShardId.d.ts +5 -55
  159. package/dist/dts/ShardId.d.ts.map +1 -1
  160. package/dist/dts/ShardManager.d.ts +435 -23
  161. package/dist/dts/ShardManager.d.ts.map +1 -1
  162. package/dist/dts/ShardStorage.d.ts +200 -0
  163. package/dist/dts/ShardStorage.d.ts.map +1 -0
  164. package/dist/dts/Sharding.d.ts +109 -131
  165. package/dist/dts/Sharding.d.ts.map +1 -1
  166. package/dist/dts/ShardingConfig.d.ts +147 -44
  167. package/dist/dts/ShardingConfig.d.ts.map +1 -1
  168. package/dist/dts/ShardingRegistrationEvent.d.ts +38 -23
  169. package/dist/dts/ShardingRegistrationEvent.d.ts.map +1 -1
  170. package/dist/dts/Singleton.d.ts +13 -0
  171. package/dist/dts/Singleton.d.ts.map +1 -0
  172. package/dist/dts/SingletonAddress.d.ts +49 -0
  173. package/dist/dts/SingletonAddress.d.ts.map +1 -0
  174. package/dist/dts/Snowflake.d.ts +121 -0
  175. package/dist/dts/Snowflake.d.ts.map +1 -0
  176. package/dist/dts/SocketRunner.d.ts +22 -0
  177. package/dist/dts/SocketRunner.d.ts.map +1 -0
  178. package/dist/dts/SocketShardManager.d.ts +17 -0
  179. package/dist/dts/SocketShardManager.d.ts.map +1 -0
  180. package/dist/dts/SqlMessageStorage.d.ts +43 -0
  181. package/dist/dts/SqlMessageStorage.d.ts.map +1 -0
  182. package/dist/dts/SqlShardStorage.d.ts +38 -0
  183. package/dist/dts/SqlShardStorage.d.ts.map +1 -0
  184. package/dist/dts/SynchronizedClock.d.ts +19 -0
  185. package/dist/dts/SynchronizedClock.d.ts.map +1 -0
  186. package/dist/dts/index.d.ts +48 -24
  187. package/dist/dts/index.d.ts.map +1 -1
  188. package/dist/dts/internal/entityReaper.d.ts +2 -0
  189. package/dist/dts/internal/entityReaper.d.ts.map +1 -0
  190. package/dist/dts/internal/hash.d.ts +2 -0
  191. package/dist/dts/internal/hash.d.ts.map +1 -0
  192. package/dist/dts/internal/interruptors.d.ts +2 -0
  193. package/dist/dts/internal/interruptors.d.ts.map +1 -0
  194. package/dist/dts/internal/resourceMap.d.ts +22 -0
  195. package/dist/dts/internal/resourceMap.d.ts.map +1 -0
  196. package/dist/dts/internal/resourceRef.d.ts +25 -0
  197. package/dist/dts/internal/resourceRef.d.ts.map +1 -0
  198. package/dist/dts/internal/shardManager.d.ts +1 -11
  199. package/dist/dts/internal/shardManager.d.ts.map +1 -1
  200. package/dist/esm/ClusterError.js +164 -0
  201. package/dist/esm/ClusterError.js.map +1 -0
  202. package/dist/esm/ClusterMetrics.js +54 -0
  203. package/dist/esm/ClusterMetrics.js.map +1 -0
  204. package/dist/esm/ClusterSchema.js +13 -0
  205. package/dist/esm/ClusterSchema.js.map +1 -0
  206. package/dist/esm/DeliverAt.js +22 -0
  207. package/dist/esm/DeliverAt.js.map +1 -0
  208. package/dist/esm/Entity.js +173 -0
  209. package/dist/esm/Entity.js.map +1 -0
  210. package/dist/esm/EntityAddress.js +44 -0
  211. package/dist/esm/EntityAddress.js.map +1 -0
  212. package/dist/esm/EntityId.js +10 -0
  213. package/dist/esm/EntityId.js.map +1 -0
  214. package/dist/esm/EntityType.js +10 -0
  215. package/dist/esm/EntityType.js.map +1 -0
  216. package/dist/esm/Envelope.js +154 -0
  217. package/dist/esm/Envelope.js.map +1 -0
  218. package/dist/esm/HttpCommon.js +38 -0
  219. package/dist/esm/HttpCommon.js.map +1 -0
  220. package/dist/esm/HttpRunner.js +98 -0
  221. package/dist/esm/HttpRunner.js.map +1 -0
  222. package/dist/esm/HttpShardManager.js +128 -0
  223. package/dist/esm/HttpShardManager.js.map +1 -0
  224. package/dist/esm/MachineId.js +17 -0
  225. package/dist/esm/MachineId.js.map +1 -0
  226. package/dist/esm/Message.js +88 -17
  227. package/dist/esm/Message.js.map +1 -1
  228. package/dist/esm/MessageStorage.js +345 -0
  229. package/dist/esm/MessageStorage.js.map +1 -0
  230. package/dist/esm/Reply.js +184 -0
  231. package/dist/esm/Reply.js.map +1 -0
  232. package/dist/esm/Runner.js +68 -0
  233. package/dist/esm/Runner.js.map +1 -0
  234. package/dist/esm/RunnerAddress.js +52 -0
  235. package/dist/esm/RunnerAddress.js.map +1 -0
  236. package/dist/esm/RunnerHealth.js +58 -0
  237. package/dist/esm/RunnerHealth.js.map +1 -0
  238. package/dist/esm/RunnerServer.js +116 -0
  239. package/dist/esm/RunnerServer.js.map +1 -0
  240. package/dist/esm/Runners.js +332 -0
  241. package/dist/esm/Runners.js.map +1 -0
  242. package/dist/esm/ShardId.js +5 -42
  243. package/dist/esm/ShardId.js.map +1 -1
  244. package/dist/esm/ShardManager.js +486 -7
  245. package/dist/esm/ShardManager.js.map +1 -1
  246. package/dist/esm/ShardStorage.js +129 -0
  247. package/dist/esm/ShardStorage.js.map +1 -0
  248. package/dist/esm/Sharding.js +730 -87
  249. package/dist/esm/Sharding.js.map +1 -1
  250. package/dist/esm/ShardingConfig.js +80 -17
  251. package/dist/esm/ShardingConfig.js.map +1 -1
  252. package/dist/esm/ShardingRegistrationEvent.js +19 -29
  253. package/dist/esm/ShardingRegistrationEvent.js.map +1 -1
  254. package/dist/esm/Singleton.js +15 -0
  255. package/dist/esm/Singleton.js.map +1 -0
  256. package/dist/esm/SingletonAddress.js +40 -0
  257. package/dist/esm/SingletonAddress.js.map +1 -0
  258. package/dist/esm/Snowflake.js +117 -0
  259. package/dist/esm/Snowflake.js.map +1 -0
  260. package/dist/esm/SocketRunner.js +31 -0
  261. package/dist/esm/SocketRunner.js.map +1 -0
  262. package/dist/esm/SocketShardManager.js +24 -0
  263. package/dist/esm/SocketShardManager.js.map +1 -0
  264. package/dist/esm/SqlMessageStorage.js +658 -0
  265. package/dist/esm/SqlMessageStorage.js.map +1 -0
  266. package/dist/esm/SqlShardStorage.js +218 -0
  267. package/dist/esm/SqlShardStorage.js.map +1 -0
  268. package/dist/esm/SynchronizedClock.js +57 -0
  269. package/dist/esm/SynchronizedClock.js.map +1 -0
  270. package/dist/esm/index.js +48 -24
  271. package/dist/esm/index.js.map +1 -1
  272. package/dist/esm/internal/entityManager.js +311 -142
  273. package/dist/esm/internal/entityManager.js.map +1 -1
  274. package/dist/esm/internal/entityReaper.js +38 -0
  275. package/dist/esm/internal/entityReaper.js.map +1 -0
  276. package/dist/esm/internal/hash.js +12 -0
  277. package/dist/esm/internal/hash.js.map +1 -0
  278. package/dist/esm/internal/interruptors.js +3 -0
  279. package/dist/esm/internal/interruptors.js.map +1 -0
  280. package/dist/esm/internal/resourceMap.js +79 -0
  281. package/dist/esm/internal/resourceMap.js.map +1 -0
  282. package/dist/esm/internal/resourceRef.js +83 -0
  283. package/dist/esm/internal/resourceRef.js.map +1 -0
  284. package/dist/esm/internal/shardManager.js +217 -233
  285. package/dist/esm/internal/shardManager.js.map +1 -1
  286. package/package.json +212 -154
  287. package/src/ClusterError.ts +193 -0
  288. package/src/ClusterMetrics.ts +62 -0
  289. package/src/ClusterSchema.ts +13 -0
  290. package/src/DeliverAt.ts +36 -0
  291. package/src/Entity.ts +438 -0
  292. package/src/EntityAddress.ts +55 -0
  293. package/src/EntityId.ts +16 -0
  294. package/src/EntityType.ts +16 -0
  295. package/src/Envelope.ts +352 -0
  296. package/src/HttpCommon.ts +73 -0
  297. package/src/HttpRunner.ts +196 -0
  298. package/src/HttpShardManager.ts +273 -0
  299. package/src/MachineId.ts +27 -0
  300. package/src/Message.ts +143 -92
  301. package/src/MessageStorage.ts +697 -0
  302. package/src/Reply.ts +295 -0
  303. package/src/Runner.ts +84 -0
  304. package/src/RunnerAddress.ts +61 -0
  305. package/src/RunnerHealth.ts +87 -0
  306. package/src/RunnerServer.ts +156 -0
  307. package/src/Runners.ts +533 -0
  308. package/src/ShardId.ts +10 -62
  309. package/src/ShardManager.ts +780 -29
  310. package/src/ShardStorage.ts +289 -0
  311. package/src/Sharding.ts +1060 -183
  312. package/src/ShardingConfig.ts +186 -45
  313. package/src/ShardingRegistrationEvent.ts +38 -39
  314. package/src/Singleton.ts +20 -0
  315. package/src/SingletonAddress.ts +47 -0
  316. package/src/Snowflake.ts +194 -0
  317. package/src/SocketRunner.ts +59 -0
  318. package/src/SocketShardManager.ts +48 -0
  319. package/src/SqlMessageStorage.ts +833 -0
  320. package/src/SqlShardStorage.ts +292 -0
  321. package/src/SynchronizedClock.ts +82 -0
  322. package/src/index.ts +54 -24
  323. package/src/internal/entityManager.ts +464 -361
  324. package/src/internal/entityReaper.ts +53 -0
  325. package/src/internal/hash.ts +11 -0
  326. package/src/internal/interruptors.ts +4 -0
  327. package/src/internal/resourceMap.ts +89 -0
  328. package/src/internal/resourceRef.ts +88 -0
  329. package/src/internal/shardManager.ts +273 -546
  330. package/AtLeastOnce/package.json +0 -6
  331. package/AtLeastOnceStorage/package.json +0 -6
  332. package/Broadcaster/package.json +0 -6
  333. package/ManagerConfig/package.json +0 -6
  334. package/MessageState/package.json +0 -6
  335. package/Messenger/package.json +0 -6
  336. package/Pod/package.json +0 -6
  337. package/PodAddress/package.json +0 -6
  338. package/Pods/package.json +0 -6
  339. package/PodsHealth/package.json +0 -6
  340. package/PoisonPill/package.json +0 -6
  341. package/RecipientAddress/package.json +0 -6
  342. package/RecipientBehaviour/package.json +0 -6
  343. package/RecipientBehaviourContext/package.json +0 -6
  344. package/RecipientType/package.json +0 -6
  345. package/Serialization/package.json +0 -6
  346. package/SerializedEnvelope/package.json +0 -6
  347. package/SerializedMessage/package.json +0 -6
  348. package/ShardManagerClient/package.json +0 -6
  349. package/ShardingEvent/package.json +0 -6
  350. package/ShardingException/package.json +0 -6
  351. package/Storage/package.json +0 -6
  352. package/dist/cjs/AtLeastOnce.js.map +0 -1
  353. package/dist/cjs/AtLeastOnceStorage.js.map +0 -1
  354. package/dist/cjs/Broadcaster.js +0 -6
  355. package/dist/cjs/Broadcaster.js.map +0 -1
  356. package/dist/cjs/ManagerConfig.js.map +0 -1
  357. package/dist/cjs/MessageState.js +0 -55
  358. package/dist/cjs/MessageState.js.map +0 -1
  359. package/dist/cjs/Messenger.js +0 -6
  360. package/dist/cjs/Messenger.js.map +0 -1
  361. package/dist/cjs/Pod.js +0 -78
  362. package/dist/cjs/Pod.js.map +0 -1
  363. package/dist/cjs/PodAddress.js +0 -77
  364. package/dist/cjs/PodAddress.js.map +0 -1
  365. package/dist/cjs/Pods.js.map +0 -1
  366. package/dist/cjs/PodsHealth.js +0 -41
  367. package/dist/cjs/PodsHealth.js.map +0 -1
  368. package/dist/cjs/PoisonPill.js +0 -78
  369. package/dist/cjs/PoisonPill.js.map +0 -1
  370. package/dist/cjs/RecipientAddress.js +0 -79
  371. package/dist/cjs/RecipientAddress.js.map +0 -1
  372. package/dist/cjs/RecipientBehaviour.js +0 -38
  373. package/dist/cjs/RecipientBehaviour.js.map +0 -1
  374. package/dist/cjs/RecipientBehaviourContext.js +0 -64
  375. package/dist/cjs/RecipientBehaviourContext.js.map +0 -1
  376. package/dist/cjs/RecipientType.js +0 -123
  377. package/dist/cjs/RecipientType.js.map +0 -1
  378. package/dist/cjs/Serialization.js +0 -32
  379. package/dist/cjs/Serialization.js.map +0 -1
  380. package/dist/cjs/SerializedEnvelope.js +0 -87
  381. package/dist/cjs/SerializedEnvelope.js.map +0 -1
  382. package/dist/cjs/SerializedMessage.js +0 -64
  383. package/dist/cjs/SerializedMessage.js.map +0 -1
  384. package/dist/cjs/ShardManagerClient.js.map +0 -1
  385. package/dist/cjs/ShardingEvent.js +0 -72
  386. package/dist/cjs/ShardingEvent.js.map +0 -1
  387. package/dist/cjs/ShardingException.js +0 -107
  388. package/dist/cjs/ShardingException.js.map +0 -1
  389. package/dist/cjs/Storage.js +0 -40
  390. package/dist/cjs/Storage.js.map +0 -1
  391. package/dist/cjs/internal/atLeastOnce.js +0 -35
  392. package/dist/cjs/internal/atLeastOnce.js.map +0 -1
  393. package/dist/cjs/internal/atLeastOnceStorage.js +0 -163
  394. package/dist/cjs/internal/atLeastOnceStorage.js.map +0 -1
  395. package/dist/cjs/internal/entityState.js +0 -47
  396. package/dist/cjs/internal/entityState.js.map +0 -1
  397. package/dist/cjs/internal/managerConfig.js +0 -46
  398. package/dist/cjs/internal/managerConfig.js.map +0 -1
  399. package/dist/cjs/internal/message.js +0 -48
  400. package/dist/cjs/internal/message.js.map +0 -1
  401. package/dist/cjs/internal/messageState.js +0 -79
  402. package/dist/cjs/internal/messageState.js.map +0 -1
  403. package/dist/cjs/internal/podWithMetadata.js +0 -54
  404. package/dist/cjs/internal/podWithMetadata.js.map +0 -1
  405. package/dist/cjs/internal/pods.js +0 -35
  406. package/dist/cjs/internal/pods.js.map +0 -1
  407. package/dist/cjs/internal/podsHealth.js +0 -40
  408. package/dist/cjs/internal/podsHealth.js.map +0 -1
  409. package/dist/cjs/internal/recipientBehaviour.js +0 -52
  410. package/dist/cjs/internal/recipientBehaviour.js.map +0 -1
  411. package/dist/cjs/internal/recipientBehaviourContext.js +0 -36
  412. package/dist/cjs/internal/recipientBehaviourContext.js.map +0 -1
  413. package/dist/cjs/internal/serialization.js +0 -48
  414. package/dist/cjs/internal/serialization.js.map +0 -1
  415. package/dist/cjs/internal/shardManagerClient.js +0 -48
  416. package/dist/cjs/internal/shardManagerClient.js.map +0 -1
  417. package/dist/cjs/internal/shardManagerState.js +0 -44
  418. package/dist/cjs/internal/shardManagerState.js.map +0 -1
  419. package/dist/cjs/internal/sharding.js +0 -306
  420. package/dist/cjs/internal/sharding.js.map +0 -1
  421. package/dist/cjs/internal/shardingConfig.js +0 -56
  422. package/dist/cjs/internal/shardingConfig.js.map +0 -1
  423. package/dist/cjs/internal/storage.js +0 -52
  424. package/dist/cjs/internal/storage.js.map +0 -1
  425. package/dist/cjs/internal/utils.js +0 -69
  426. package/dist/cjs/internal/utils.js.map +0 -1
  427. package/dist/dts/AtLeastOnce.d.ts +0 -20
  428. package/dist/dts/AtLeastOnce.d.ts.map +0 -1
  429. package/dist/dts/AtLeastOnceStorage.d.ts +0 -75
  430. package/dist/dts/AtLeastOnceStorage.d.ts.map +0 -1
  431. package/dist/dts/Broadcaster.d.ts +0 -32
  432. package/dist/dts/Broadcaster.d.ts.map +0 -1
  433. package/dist/dts/ManagerConfig.d.ts +0 -61
  434. package/dist/dts/ManagerConfig.d.ts.map +0 -1
  435. package/dist/dts/MessageState.d.ts +0 -107
  436. package/dist/dts/MessageState.d.ts.map +0 -1
  437. package/dist/dts/Messenger.d.ts +0 -32
  438. package/dist/dts/Messenger.d.ts.map +0 -1
  439. package/dist/dts/Pod.d.ts +0 -81
  440. package/dist/dts/Pod.d.ts.map +0 -1
  441. package/dist/dts/PodAddress.d.ts +0 -80
  442. package/dist/dts/PodAddress.d.ts.map +0 -1
  443. package/dist/dts/Pods.d.ts +0 -78
  444. package/dist/dts/Pods.d.ts.map +0 -1
  445. package/dist/dts/PodsHealth.d.ts +0 -66
  446. package/dist/dts/PodsHealth.d.ts.map +0 -1
  447. package/dist/dts/PoisonPill.d.ts +0 -78
  448. package/dist/dts/PoisonPill.d.ts.map +0 -1
  449. package/dist/dts/RecipientAddress.d.ts +0 -57
  450. package/dist/dts/RecipientAddress.d.ts.map +0 -1
  451. package/dist/dts/RecipientBehaviour.d.ts +0 -72
  452. package/dist/dts/RecipientBehaviour.d.ts.map +0 -1
  453. package/dist/dts/RecipientBehaviourContext.d.ts +0 -83
  454. package/dist/dts/RecipientBehaviourContext.d.ts.map +0 -1
  455. package/dist/dts/RecipientType.d.ts +0 -93
  456. package/dist/dts/RecipientType.d.ts.map +0 -1
  457. package/dist/dts/Serialization.d.ts +0 -58
  458. package/dist/dts/Serialization.d.ts.map +0 -1
  459. package/dist/dts/SerializedEnvelope.d.ts +0 -86
  460. package/dist/dts/SerializedEnvelope.d.ts.map +0 -1
  461. package/dist/dts/SerializedMessage.d.ts +0 -66
  462. package/dist/dts/SerializedMessage.d.ts.map +0 -1
  463. package/dist/dts/ShardManagerClient.d.ts +0 -50
  464. package/dist/dts/ShardManagerClient.d.ts.map +0 -1
  465. package/dist/dts/ShardingEvent.d.ts +0 -90
  466. package/dist/dts/ShardingEvent.d.ts.map +0 -1
  467. package/dist/dts/ShardingException.d.ts +0 -125
  468. package/dist/dts/ShardingException.d.ts.map +0 -1
  469. package/dist/dts/Storage.d.ts +0 -78
  470. package/dist/dts/Storage.d.ts.map +0 -1
  471. package/dist/dts/internal/atLeastOnce.d.ts +0 -2
  472. package/dist/dts/internal/atLeastOnce.d.ts.map +0 -1
  473. package/dist/dts/internal/atLeastOnceStorage.d.ts +0 -2
  474. package/dist/dts/internal/atLeastOnceStorage.d.ts.map +0 -1
  475. package/dist/dts/internal/entityState.d.ts +0 -21
  476. package/dist/dts/internal/entityState.d.ts.map +0 -1
  477. package/dist/dts/internal/managerConfig.d.ts +0 -2
  478. package/dist/dts/internal/managerConfig.d.ts.map +0 -1
  479. package/dist/dts/internal/message.d.ts +0 -9
  480. package/dist/dts/internal/message.d.ts.map +0 -1
  481. package/dist/dts/internal/messageState.d.ts +0 -2
  482. package/dist/dts/internal/messageState.d.ts.map +0 -1
  483. package/dist/dts/internal/podWithMetadata.d.ts +0 -2
  484. package/dist/dts/internal/podWithMetadata.d.ts.map +0 -1
  485. package/dist/dts/internal/pods.d.ts +0 -2
  486. package/dist/dts/internal/pods.d.ts.map +0 -1
  487. package/dist/dts/internal/podsHealth.d.ts +0 -2
  488. package/dist/dts/internal/podsHealth.d.ts.map +0 -1
  489. package/dist/dts/internal/recipientBehaviour.d.ts +0 -2
  490. package/dist/dts/internal/recipientBehaviour.d.ts.map +0 -1
  491. package/dist/dts/internal/recipientBehaviourContext.d.ts +0 -2
  492. package/dist/dts/internal/recipientBehaviourContext.d.ts.map +0 -1
  493. package/dist/dts/internal/serialization.d.ts +0 -2
  494. package/dist/dts/internal/serialization.d.ts.map +0 -1
  495. package/dist/dts/internal/shardManagerClient.d.ts +0 -2
  496. package/dist/dts/internal/shardManagerClient.d.ts.map +0 -1
  497. package/dist/dts/internal/shardManagerState.d.ts +0 -26
  498. package/dist/dts/internal/shardManagerState.d.ts.map +0 -1
  499. package/dist/dts/internal/sharding.d.ts +0 -2
  500. package/dist/dts/internal/sharding.d.ts.map +0 -1
  501. package/dist/dts/internal/shardingConfig.d.ts +0 -2
  502. package/dist/dts/internal/shardingConfig.d.ts.map +0 -1
  503. package/dist/dts/internal/storage.d.ts +0 -2
  504. package/dist/dts/internal/storage.d.ts.map +0 -1
  505. package/dist/dts/internal/utils.d.ts +0 -2
  506. package/dist/dts/internal/utils.d.ts.map +0 -1
  507. package/dist/esm/AtLeastOnce.js +0 -12
  508. package/dist/esm/AtLeastOnce.js.map +0 -1
  509. package/dist/esm/AtLeastOnceStorage.js +0 -17
  510. package/dist/esm/AtLeastOnceStorage.js.map +0 -1
  511. package/dist/esm/Broadcaster.js +0 -2
  512. package/dist/esm/Broadcaster.js.map +0 -1
  513. package/dist/esm/ManagerConfig.js +0 -26
  514. package/dist/esm/ManagerConfig.js.map +0 -1
  515. package/dist/esm/MessageState.js +0 -47
  516. package/dist/esm/MessageState.js.map +0 -1
  517. package/dist/esm/Messenger.js +0 -2
  518. package/dist/esm/Messenger.js.map +0 -1
  519. package/dist/esm/Pod.js +0 -65
  520. package/dist/esm/Pod.js.map +0 -1
  521. package/dist/esm/PodAddress.js +0 -64
  522. package/dist/esm/PodAddress.js.map +0 -1
  523. package/dist/esm/Pods.js +0 -27
  524. package/dist/esm/Pods.js.map +0 -1
  525. package/dist/esm/PodsHealth.js +0 -33
  526. package/dist/esm/PodsHealth.js.map +0 -1
  527. package/dist/esm/PoisonPill.js +0 -65
  528. package/dist/esm/PoisonPill.js.map +0 -1
  529. package/dist/esm/RecipientAddress.js +0 -67
  530. package/dist/esm/RecipientAddress.js.map +0 -1
  531. package/dist/esm/RecipientBehaviour.js +0 -30
  532. package/dist/esm/RecipientBehaviour.js.map +0 -1
  533. package/dist/esm/RecipientBehaviourContext.js +0 -56
  534. package/dist/esm/RecipientBehaviourContext.js.map +0 -1
  535. package/dist/esm/RecipientType.js +0 -108
  536. package/dist/esm/RecipientType.js.map +0 -1
  537. package/dist/esm/Serialization.js +0 -24
  538. package/dist/esm/Serialization.js.map +0 -1
  539. package/dist/esm/SerializedEnvelope.js +0 -74
  540. package/dist/esm/SerializedEnvelope.js.map +0 -1
  541. package/dist/esm/SerializedMessage.js +0 -51
  542. package/dist/esm/SerializedMessage.js.map +0 -1
  543. package/dist/esm/ShardManagerClient.js +0 -22
  544. package/dist/esm/ShardManagerClient.js.map +0 -1
  545. package/dist/esm/ShardingEvent.js +0 -62
  546. package/dist/esm/ShardingEvent.js.map +0 -1
  547. package/dist/esm/ShardingException.js +0 -91
  548. package/dist/esm/ShardingException.js.map +0 -1
  549. package/dist/esm/Storage.js +0 -32
  550. package/dist/esm/Storage.js.map +0 -1
  551. package/dist/esm/internal/atLeastOnce.js +0 -26
  552. package/dist/esm/internal/atLeastOnce.js.map +0 -1
  553. package/dist/esm/internal/atLeastOnceStorage.js +0 -154
  554. package/dist/esm/internal/atLeastOnceStorage.js.map +0 -1
  555. package/dist/esm/internal/entityState.js +0 -35
  556. package/dist/esm/internal/entityState.js.map +0 -1
  557. package/dist/esm/internal/managerConfig.js +0 -38
  558. package/dist/esm/internal/managerConfig.js.map +0 -1
  559. package/dist/esm/internal/message.js +0 -35
  560. package/dist/esm/internal/message.js.map +0 -1
  561. package/dist/esm/internal/messageState.js +0 -66
  562. package/dist/esm/internal/messageState.js.map +0 -1
  563. package/dist/esm/internal/podWithMetadata.js +0 -41
  564. package/dist/esm/internal/podWithMetadata.js.map +0 -1
  565. package/dist/esm/internal/pods.js +0 -25
  566. package/dist/esm/internal/pods.js.map +0 -1
  567. package/dist/esm/internal/podsHealth.js +0 -30
  568. package/dist/esm/internal/podsHealth.js.map +0 -1
  569. package/dist/esm/internal/recipientBehaviour.js +0 -42
  570. package/dist/esm/internal/recipientBehaviour.js.map +0 -1
  571. package/dist/esm/internal/recipientBehaviourContext.js +0 -26
  572. package/dist/esm/internal/recipientBehaviourContext.js.map +0 -1
  573. package/dist/esm/internal/serialization.js +0 -38
  574. package/dist/esm/internal/serialization.js.map +0 -1
  575. package/dist/esm/internal/shardManagerClient.js +0 -38
  576. package/dist/esm/internal/shardManagerClient.js.map +0 -1
  577. package/dist/esm/internal/shardManagerState.js +0 -36
  578. package/dist/esm/internal/shardManagerState.js.map +0 -1
  579. package/dist/esm/internal/sharding.js +0 -288
  580. package/dist/esm/internal/sharding.js.map +0 -1
  581. package/dist/esm/internal/shardingConfig.js +0 -47
  582. package/dist/esm/internal/shardingConfig.js.map +0 -1
  583. package/dist/esm/internal/storage.js +0 -42
  584. package/dist/esm/internal/storage.js.map +0 -1
  585. package/dist/esm/internal/utils.js +0 -56
  586. package/dist/esm/internal/utils.js.map +0 -1
  587. package/src/AtLeastOnce.ts +0 -28
  588. package/src/AtLeastOnceStorage.ts +0 -96
  589. package/src/Broadcaster.ts +0 -48
  590. package/src/ManagerConfig.ts +0 -67
  591. package/src/MessageState.ts +0 -126
  592. package/src/Messenger.ts +0 -40
  593. package/src/Pod.ts +0 -95
  594. package/src/PodAddress.ts +0 -94
  595. package/src/Pods.ts +0 -100
  596. package/src/PodsHealth.ts +0 -74
  597. package/src/PoisonPill.ts +0 -105
  598. package/src/RecipientAddress.ts +0 -72
  599. package/src/RecipientBehaviour.ts +0 -108
  600. package/src/RecipientBehaviourContext.ts +0 -101
  601. package/src/RecipientType.ts +0 -134
  602. package/src/Serialization.ts +0 -72
  603. package/src/SerializedEnvelope.ts +0 -108
  604. package/src/SerializedMessage.ts +0 -82
  605. package/src/ShardManagerClient.ts +0 -57
  606. package/src/ShardingEvent.ts +0 -121
  607. package/src/ShardingException.ts +0 -151
  608. package/src/Storage.ts +0 -92
  609. package/src/internal/atLeastOnce.ts +0 -59
  610. package/src/internal/atLeastOnceStorage.ts +0 -218
  611. package/src/internal/entityState.ts +0 -64
  612. package/src/internal/managerConfig.ts +0 -84
  613. package/src/internal/message.ts +0 -63
  614. package/src/internal/messageState.ts +0 -98
  615. package/src/internal/podWithMetadata.ts +0 -72
  616. package/src/internal/pods.ts +0 -29
  617. package/src/internal/podsHealth.ts +0 -39
  618. package/src/internal/recipientBehaviour.ts +0 -133
  619. package/src/internal/recipientBehaviourContext.ts +0 -70
  620. package/src/internal/serialization.ts +0 -63
  621. package/src/internal/shardManagerClient.ts +0 -49
  622. package/src/internal/shardManagerState.ts +0 -80
  623. package/src/internal/sharding.ts +0 -789
  624. package/src/internal/shardingConfig.ts +0 -97
  625. package/src/internal/storage.ts +0 -60
  626. package/src/internal/utils.ts +0 -54
@@ -3,23 +3,508 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.live = exports.ShardManagerTypeId = exports.ShardManager = void 0;
7
- var internal = _interopRequireWildcard(require("./internal/shardManager.js"));
6
+ exports.makeClientRpc = exports.makeClientLocal = exports.make = exports.layerServerHandlers = exports.layerServer = exports.layerConfigFromEnv = exports.layerConfig = exports.layerClientRpc = exports.layerClientLocal = exports.layer = exports.configFromEnv = exports.configConfig = exports.ShardingEventSchema = exports.ShardingEvent = exports.ShardManagerClient = exports.ShardManager = exports.Rpcs = exports.Config = void 0;
7
+ var Rpc = _interopRequireWildcard(require("@effect/rpc/Rpc"));
8
+ var RpcClient = _interopRequireWildcard(require("@effect/rpc/RpcClient"));
9
+ var RpcGroup = _interopRequireWildcard(require("@effect/rpc/RpcGroup"));
10
+ var RpcServer = _interopRequireWildcard(require("@effect/rpc/RpcServer"));
11
+ var Arr = _interopRequireWildcard(require("effect/Array"));
12
+ var Clock = _interopRequireWildcard(require("effect/Clock"));
13
+ var Config_ = _interopRequireWildcard(require("effect/Config"));
14
+ var ConfigProvider = _interopRequireWildcard(require("effect/ConfigProvider"));
15
+ var Context = _interopRequireWildcard(require("effect/Context"));
16
+ var Data = _interopRequireWildcard(require("effect/Data"));
17
+ var Deferred = _interopRequireWildcard(require("effect/Deferred"));
18
+ var Duration = _interopRequireWildcard(require("effect/Duration"));
19
+ var Effect = _interopRequireWildcard(require("effect/Effect"));
20
+ var Equal = _interopRequireWildcard(require("effect/Equal"));
21
+ var FiberSet = _interopRequireWildcard(require("effect/FiberSet"));
22
+ var _Function = require("effect/Function");
23
+ var Iterable = _interopRequireWildcard(require("effect/Iterable"));
24
+ var Layer = _interopRequireWildcard(require("effect/Layer"));
25
+ var Mailbox = _interopRequireWildcard(require("effect/Mailbox"));
26
+ var Metric = _interopRequireWildcard(require("effect/Metric"));
27
+ var MutableHashMap = _interopRequireWildcard(require("effect/MutableHashMap"));
28
+ var MutableHashSet = _interopRequireWildcard(require("effect/MutableHashSet"));
29
+ var Option = _interopRequireWildcard(require("effect/Option"));
30
+ var PubSub = _interopRequireWildcard(require("effect/PubSub"));
31
+ var Queue = _interopRequireWildcard(require("effect/Queue"));
32
+ var Schedule = _interopRequireWildcard(require("effect/Schedule"));
33
+ var Schema = _interopRequireWildcard(require("effect/Schema"));
34
+ var _ClusterError = require("./ClusterError.js");
35
+ var ClusterMetrics = _interopRequireWildcard(require("./ClusterMetrics.js"));
36
+ var _shardManager = require("./internal/shardManager.js");
37
+ var MachineId = _interopRequireWildcard(require("./MachineId.js"));
38
+ var _Runner = require("./Runner.js");
39
+ var _RunnerAddress = require("./RunnerAddress.js");
40
+ var _RunnerHealth = require("./RunnerHealth.js");
41
+ var _Runners = require("./Runners.js");
42
+ var _ShardId = require("./ShardId.js");
43
+ var _ShardingConfig = require("./ShardingConfig.js");
44
+ var _ShardStorage = require("./ShardStorage.js");
8
45
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
46
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
47
  /**
11
48
  * @since 1.0.0
12
- * @category symbols
13
49
  */
14
- const ShardManagerTypeId = exports.ShardManagerTypeId = internal.ShardManagerTypeId;
50
+
51
+ /**
52
+ * @since 1.0.0
53
+ * @category models
54
+ */
55
+ class ShardManager extends /*#__PURE__*/Context.Tag("@effect/cluster/ShardManager")() {}
56
+ /**
57
+ * @since 1.0.0
58
+ * @category Config
59
+ */
60
+ exports.ShardManager = ShardManager;
61
+ class Config extends /*#__PURE__*/Context.Tag("@effect/cluster/ShardManager/Config")() {
62
+ /**
63
+ * @since 1.0.0
64
+ */
65
+ static defaults = {
66
+ rebalanceDebounce: /*#__PURE__*/Duration.millis(500),
67
+ rebalanceInterval: /*#__PURE__*/Duration.seconds(20),
68
+ rebalanceRetryInterval: /*#__PURE__*/Duration.seconds(10),
69
+ rebalanceRate: 2 / 100,
70
+ persistRetryCount: 100,
71
+ persistRetryInterval: /*#__PURE__*/Duration.seconds(3),
72
+ runnerHealthCheckInterval: /*#__PURE__*/Duration.minutes(1),
73
+ runnerPingTimeout: /*#__PURE__*/Duration.seconds(3)
74
+ };
75
+ }
76
+ /**
77
+ * @since 1.0.0
78
+ * @category Config
79
+ */
80
+ exports.Config = Config;
81
+ const configConfig = exports.configConfig = /*#__PURE__*/Config_.all({
82
+ rebalanceDebounce: /*#__PURE__*/Config_.duration("rebalanceDebounce").pipe( /*#__PURE__*/Config_.withDefault(Config.defaults.rebalanceDebounce), /*#__PURE__*/Config_.withDescription("The duration to wait before rebalancing shards after a change.")),
83
+ rebalanceInterval: /*#__PURE__*/Config_.duration("rebalanceInterval").pipe( /*#__PURE__*/Config_.withDefault(Config.defaults.rebalanceInterval), /*#__PURE__*/Config_.withDescription("The interval on which regular rebalancing of shards will occur.")),
84
+ rebalanceRetryInterval: /*#__PURE__*/Config_.duration("rebalanceRetryInterval").pipe( /*#__PURE__*/Config_.withDefault(Config.defaults.rebalanceRetryInterval), /*#__PURE__*/Config_.withDescription("The interval on which rebalancing of shards which failed to be rebalanced will be retried.")),
85
+ rebalanceRate: /*#__PURE__*/Config_.number("rebalanceRate").pipe( /*#__PURE__*/Config_.withDefault(Config.defaults.rebalanceRate), /*#__PURE__*/Config_.withDescription("The maximum ratio of shards to rebalance at once.")),
86
+ persistRetryCount: /*#__PURE__*/Config_.integer("persistRetryCount").pipe( /*#__PURE__*/Config_.withDefault(Config.defaults.persistRetryCount), /*#__PURE__*/Config_.withDescription("The number of times persistence of runners will be retried if it fails.")),
87
+ persistRetryInterval: /*#__PURE__*/Config_.duration("persistRetryInterval").pipe( /*#__PURE__*/Config_.withDefault(Config.defaults.persistRetryInterval), /*#__PURE__*/Config_.withDescription("The interval on which persistence of runners will be retried if it fails.")),
88
+ runnerHealthCheckInterval: /*#__PURE__*/Config_.duration("runnerHealthCheckInterval").pipe( /*#__PURE__*/Config_.withDefault(Config.defaults.runnerHealthCheckInterval), /*#__PURE__*/Config_.withDescription("The interval on which runner health will be checked.")),
89
+ runnerPingTimeout: /*#__PURE__*/Config_.duration("runnerPingTimeout").pipe( /*#__PURE__*/Config_.withDefault(Config.defaults.runnerPingTimeout), /*#__PURE__*/Config_.withDescription("The length of time to wait for a runner to respond to a ping."))
90
+ });
91
+ /**
92
+ * @since 1.0.0
93
+ * @category Config
94
+ */
95
+ const configFromEnv = exports.configFromEnv = /*#__PURE__*/configConfig.pipe( /*#__PURE__*/Effect.withConfigProvider( /*#__PURE__*/ConfigProvider.fromEnv().pipe(ConfigProvider.constantCase)));
96
+ /**
97
+ * @since 1.0.0
98
+ * @category Config
99
+ */
100
+ const layerConfig = config => Layer.succeed(Config, {
101
+ ...Config.defaults,
102
+ ...config
103
+ });
104
+ /**
105
+ * @since 1.0.0
106
+ * @category Config
107
+ */
108
+ exports.layerConfig = layerConfig;
109
+ const layerConfigFromEnv = exports.layerConfigFromEnv = /*#__PURE__*/Layer.effect(Config, configFromEnv);
110
+ /**
111
+ * Represents a client which can be used to communicate with the
112
+ * `ShardManager`.
113
+ *
114
+ * @since 1.0.0
115
+ * @category Client
116
+ */
117
+ class ShardManagerClient extends /*#__PURE__*/Context.Tag("@effect/cluster/ShardManager/ShardManagerClient")() {}
118
+ /**
119
+ * @since 1.0.0
120
+ * @category models
121
+ */
122
+ exports.ShardManagerClient = ShardManagerClient;
123
+ const ShardingEventSchema = exports.ShardingEventSchema = /*#__PURE__*/Schema.Union( /*#__PURE__*/Schema.TaggedStruct("StreamStarted", {}), /*#__PURE__*/Schema.TaggedStruct("ShardsAssigned", {
124
+ address: _RunnerAddress.RunnerAddress,
125
+ shards: /*#__PURE__*/Schema.Array(_ShardId.ShardId)
126
+ }), /*#__PURE__*/Schema.TaggedStruct("ShardsUnassigned", {
127
+ address: _RunnerAddress.RunnerAddress,
128
+ shards: /*#__PURE__*/Schema.Array(_ShardId.ShardId)
129
+ }), /*#__PURE__*/Schema.TaggedStruct("RunnerRegistered", {
130
+ address: _RunnerAddress.RunnerAddress
131
+ }), /*#__PURE__*/Schema.TaggedStruct("RunnerUnregistered", {
132
+ address: _RunnerAddress.RunnerAddress
133
+ }));
134
+ /**
135
+ * The messaging protocol for the `ShardManager`.
136
+ *
137
+ * @since 1.0.0
138
+ * @category Rpcs
139
+ */
140
+ class Rpcs extends /*#__PURE__*/RpcGroup.make( /*#__PURE__*/Rpc.make("Register", {
141
+ payload: {
142
+ runner: _Runner.Runner
143
+ },
144
+ success: MachineId.MachineId
145
+ }), /*#__PURE__*/Rpc.make("Unregister", {
146
+ payload: {
147
+ address: _RunnerAddress.RunnerAddress
148
+ }
149
+ }), /*#__PURE__*/Rpc.make("NotifyUnhealthyRunner", {
150
+ payload: {
151
+ address: _RunnerAddress.RunnerAddress
152
+ }
153
+ }), /*#__PURE__*/Rpc.make("GetAssignments", {
154
+ success: /*#__PURE__*/Schema.ReadonlyMap({
155
+ key: _ShardId.ShardId,
156
+ value: /*#__PURE__*/Schema.Option(_RunnerAddress.RunnerAddress)
157
+ })
158
+ }), /*#__PURE__*/Rpc.make("ShardingEvents", {
159
+ success: ShardingEventSchema,
160
+ stream: true
161
+ }), /*#__PURE__*/Rpc.make("GetTime", {
162
+ success: Schema.Number
163
+ })) {}
164
+ /**
165
+ * @since 1.0.0
166
+ * @category models
167
+ */
168
+ exports.Rpcs = Rpcs;
169
+ const ShardingEvent = exports.ShardingEvent = /*#__PURE__*/Data.taggedEnum();
170
+ /**
171
+ * @since 1.0.0
172
+ * @category Client
173
+ */
174
+ const makeClientLocal = exports.makeClientLocal = /*#__PURE__*/Effect.gen(function* () {
175
+ const runnerAddress = yield* _ShardingConfig.ShardingConfig;
176
+ const clock = yield* Effect.clock;
177
+ const shards = new Map();
178
+ for (let n = 1; n <= runnerAddress.numberOfShards; n++) {
179
+ shards.set(_ShardId.ShardId.make(n), runnerAddress.runnerAddress);
180
+ }
181
+ let machineId = 0;
182
+ return ShardManagerClient.of({
183
+ register: () => Effect.sync(() => MachineId.make(++machineId)),
184
+ unregister: () => Effect.void,
185
+ notifyUnhealthyRunner: () => Effect.void,
186
+ getAssignments: Effect.succeed(shards),
187
+ shardingEvents: Effect.gen(function* () {
188
+ const mailbox = yield* Mailbox.make();
189
+ yield* mailbox.offer(ShardingEvent.StreamStarted());
190
+ return mailbox;
191
+ }),
192
+ getTime: clock.currentTimeMillis
193
+ });
194
+ });
195
+ /**
196
+ * @since 1.0.0
197
+ * @category Client
198
+ */
199
+ const makeClientRpc = exports.makeClientRpc = /*#__PURE__*/Effect.gen(function* () {
200
+ const config = yield* _ShardingConfig.ShardingConfig;
201
+ const client = yield* RpcClient.make(Rpcs, {
202
+ spanPrefix: "ShardManagerClient",
203
+ disableTracing: true
204
+ });
205
+ return ShardManagerClient.of({
206
+ register: address => client.Register({
207
+ runner: _Runner.Runner.make({
208
+ address,
209
+ version: config.serverVersion
210
+ })
211
+ }),
212
+ unregister: address => client.Unregister({
213
+ address
214
+ }),
215
+ notifyUnhealthyRunner: address => client.NotifyUnhealthyRunner({
216
+ address
217
+ }),
218
+ getAssignments: client.GetAssignments(),
219
+ shardingEvents: client.ShardingEvents({}, {
220
+ asMailbox: true
221
+ }),
222
+ getTime: client.GetTime()
223
+ });
224
+ });
225
+ /**
226
+ * @since 1.0.0
227
+ * @category Client
228
+ */
229
+ const layerClientLocal = exports.layerClientLocal = /*#__PURE__*/Layer.effect(ShardManagerClient, makeClientLocal);
230
+ /**
231
+ * @since 1.0.0
232
+ * @category Client
233
+ */
234
+ const layerClientRpc = exports.layerClientRpc = /*#__PURE__*/Layer.scoped(ShardManagerClient, makeClientRpc).pipe( /*#__PURE__*/Layer.provide( /*#__PURE__*/Layer.scoped(RpcClient.Protocol, /*#__PURE__*/Effect.gen(function* () {
235
+ const config = yield* _ShardingConfig.ShardingConfig;
236
+ const clientProtocol = yield* _Runners.RpcClientProtocol;
237
+ return yield* clientProtocol(config.shardManagerAddress);
238
+ }))));
239
+ /**
240
+ * @since 1.0.0
241
+ * @category Constructors
242
+ */
243
+ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
244
+ const storage = yield* _ShardStorage.ShardStorage;
245
+ const runnersApi = yield* _Runners.Runners;
246
+ const runnerHealthApi = yield* _RunnerHealth.RunnerHealth;
247
+ const clock = yield* Effect.clock;
248
+ const config = yield* Config;
249
+ const shardingConfig = yield* _ShardingConfig.ShardingConfig;
250
+ const state = yield* Effect.orDie(_shardManager.State.fromStorage(shardingConfig.numberOfShards));
251
+ const scope = yield* Effect.scope;
252
+ const events = yield* PubSub.unbounded();
253
+ yield* Metric.incrementBy(ClusterMetrics.runners, MutableHashMap.size(state.runners));
254
+ for (const address of state.shards.values()) {
255
+ const metric = Option.isSome(address) ? Metric.tagged(ClusterMetrics.assignedShards, "address", address.toString()) : ClusterMetrics.unassignedShards;
256
+ yield* Metric.increment(metric);
257
+ }
258
+ function withRetry(effect) {
259
+ return effect.pipe(Effect.retry({
260
+ schedule: Schedule.spaced(config.persistRetryCount),
261
+ times: config.persistRetryCount
262
+ }), Effect.ignore);
263
+ }
264
+ const persistRunners = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveRunners(Iterable.map(state.runners, ([address, runner]) => [address, runner.runner])))));
265
+ const persistAssignments = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveAssignments(state.shards))));
266
+ const notifyUnhealthyRunner = Effect.fnUntraced(function* (address) {
267
+ if (!MutableHashMap.has(state.runners, address)) return;
268
+ yield* Metric.increment(Metric.tagged(ClusterMetrics.runnerHealthChecked, "runner_address", address.toString()));
269
+ if (!(yield* runnerHealthApi.isAlive(address))) {
270
+ yield* Effect.logWarning(`Runner at address '${address.toString()}' is not alive`);
271
+ yield* unregister(address);
272
+ }
273
+ });
274
+ function updateShardsState(shards, address) {
275
+ return Effect.suspend(() => {
276
+ if (Option.isSome(address) && !MutableHashMap.has(state.runners, address.value)) {
277
+ return Effect.fail(new _ClusterError.RunnerNotRegistered({
278
+ address: address.value
279
+ }));
280
+ }
281
+ for (const shardId of shards) {
282
+ if (!state.shards.has(shardId)) continue;
283
+ state.shards.set(shardId, address);
284
+ }
285
+ return Effect.void;
286
+ });
287
+ }
288
+ const getAssignments = Effect.sync(() => state.shards);
289
+ let machineId = 0;
290
+ const register = Effect.fnUntraced(function* (runner) {
291
+ yield* Effect.logInfo(`Registering runner ${_Runner.Runner.pretty(runner)}`);
292
+ const now = clock.unsafeCurrentTimeMillis();
293
+ MutableHashMap.set(state.runners, runner.address, (0, _shardManager.RunnerWithMetadata)({
294
+ runner,
295
+ registeredAt: now
296
+ }));
297
+ yield* Metric.increment(ClusterMetrics.runners);
298
+ yield* PubSub.publish(events, ShardingEvent.RunnerRegistered({
299
+ address: runner.address
300
+ }));
301
+ if (state.unassignedShards.length > 0) {
302
+ yield* rebalance(false);
303
+ }
304
+ yield* Effect.forkIn(persistRunners, scope);
305
+ return MachineId.make(++machineId);
306
+ });
307
+ const unregister = Effect.fnUntraced(function* (address) {
308
+ if (!MutableHashMap.has(state.runners, address)) return;
309
+ yield* Effect.logInfo("Unregistering runner at address:", address);
310
+ const unassignments = Arr.empty();
311
+ for (const [shard, runner] of state.shards) {
312
+ if (Option.isSome(runner) && Equal.equals(runner.value, address)) {
313
+ unassignments.push(shard);
314
+ state.shards.set(shard, Option.none());
315
+ }
316
+ }
317
+ MutableHashMap.remove(state.runners, address);
318
+ yield* Metric.incrementBy(ClusterMetrics.runners, -1);
319
+ if (unassignments.length > 0) {
320
+ yield* Metric.incrementBy(Metric.tagged(ClusterMetrics.unassignedShards, "runner_address", address.toString()), unassignments.length);
321
+ yield* PubSub.publish(events, ShardingEvent.RunnerUnregistered({
322
+ address
323
+ }));
324
+ }
325
+ yield* Effect.forkIn(persistRunners, scope);
326
+ yield* Effect.forkIn(rebalance(true), scope);
327
+ });
328
+ let rebalancing = false;
329
+ let nextRebalanceImmediate = false;
330
+ let rebalanceDeferred;
331
+ const rebalanceFibers = yield* FiberSet.make();
332
+ const rebalance = immmediate => Effect.withFiberRuntime(fiber => {
333
+ if (!rebalancing) {
334
+ rebalancing = true;
335
+ return rebalanceLoop(immmediate);
336
+ }
337
+ if (immmediate) {
338
+ nextRebalanceImmediate = true;
339
+ }
340
+ if (!rebalanceDeferred) {
341
+ rebalanceDeferred = Deferred.unsafeMake(fiber.id());
342
+ }
343
+ return Deferred.await(rebalanceDeferred);
344
+ });
345
+ const rebalanceLoop = immediate => Effect.suspend(() => {
346
+ const deferred = rebalanceDeferred;
347
+ rebalanceDeferred = undefined;
348
+ if (!immediate) {
349
+ immediate = nextRebalanceImmediate;
350
+ nextRebalanceImmediate = false;
351
+ }
352
+ return runRebalance(immediate).pipe(deferred ? Effect.intoDeferred(deferred) : _Function.identity, Effect.onExit(() => {
353
+ if (!rebalanceDeferred) {
354
+ rebalancing = false;
355
+ return Effect.void;
356
+ }
357
+ return Effect.forkIn(rebalanceLoop(), scope);
358
+ }));
359
+ });
360
+ const runRebalance = Effect.fn("ShardManager.rebalance")(function* (immediate) {
361
+ yield* Effect.annotateCurrentSpan("immmediate", immediate);
362
+ yield* Effect.sleep(config.rebalanceDebounce);
363
+ // Determine which shards to assign and unassign
364
+ const [assignments, unassignments, changes] = immediate || state.unassignedShards.length > 0 ? (0, _shardManager.decideAssignmentsForUnassignedShards)(state) : (0, _shardManager.decideAssignmentsForUnbalancedShards)(state, config.rebalanceRate);
365
+ yield* Effect.logDebug(`Rebalancing shards (immediate = ${immediate})`);
366
+ if (MutableHashSet.size(changes) === 0) return;
367
+ yield* Metric.increment(ClusterMetrics.rebalances);
368
+ // Ping runners first and remove unhealthy ones
369
+ const failedRunners = MutableHashSet.empty();
370
+ for (const address of changes) {
371
+ yield* FiberSet.run(rebalanceFibers, runnersApi.ping(address).pipe(Effect.timeout(config.runnerPingTimeout), Effect.catchAll(() => {
372
+ MutableHashSet.add(failedRunners, address);
373
+ MutableHashMap.remove(assignments, address);
374
+ MutableHashMap.remove(unassignments, address);
375
+ return Effect.void;
376
+ })));
377
+ }
378
+ yield* FiberSet.awaitEmpty(rebalanceFibers);
379
+ const failedUnassignments = new Set();
380
+ for (const [address, shards] of unassignments) {
381
+ yield* FiberSet.run(rebalanceFibers, updateShardsState(shards, Option.none()).pipe(Effect.matchEffect({
382
+ onFailure: () => {
383
+ MutableHashSet.add(failedRunners, address);
384
+ for (const shard of shards) {
385
+ failedUnassignments.add(shard);
386
+ }
387
+ // Remove failed runners from the assignments
388
+ MutableHashMap.remove(assignments, address);
389
+ return Effect.void;
390
+ },
391
+ onSuccess: () => {
392
+ const shardCount = shards.size;
393
+ return Metric.incrementBy(Metric.tagged(ClusterMetrics.assignedShards, "runner_address", address.toString()), -shardCount).pipe(Effect.zipRight(Metric.incrementBy(ClusterMetrics.unassignedShards, shardCount)), Effect.zipRight(PubSub.publish(events, ShardingEvent.ShardsUnassigned({
394
+ address,
395
+ shards: Array.from(shards)
396
+ }))));
397
+ }
398
+ })));
399
+ }
400
+ yield* FiberSet.awaitEmpty(rebalanceFibers);
401
+ // Remove failed shard unassignments from the assignments
402
+ MutableHashMap.forEach(assignments, (shards, address) => {
403
+ for (const shard of failedUnassignments) {
404
+ shards.delete(shard);
405
+ }
406
+ if (shards.size === 0) {
407
+ MutableHashMap.remove(assignments, address);
408
+ }
409
+ });
410
+ // Perform the assignments
411
+ for (const [address, shards] of assignments) {
412
+ yield* FiberSet.run(rebalanceFibers, updateShardsState(shards, Option.some(address)).pipe(Effect.matchEffect({
413
+ onFailure: () => {
414
+ MutableHashSet.add(failedRunners, address);
415
+ return Effect.void;
416
+ },
417
+ onSuccess: () => {
418
+ const shardCount = shards.size;
419
+ return Metric.incrementBy(Metric.tagged(ClusterMetrics.assignedShards, "runner_address", address.toString()), -shardCount).pipe(Effect.zipRight(Metric.incrementBy(ClusterMetrics.unassignedShards, -shardCount)), Effect.zipRight(PubSub.publish(events, ShardingEvent.ShardsAssigned({
420
+ address,
421
+ shards: Array.from(shards)
422
+ }))));
423
+ }
424
+ })));
425
+ }
426
+ yield* FiberSet.awaitEmpty(rebalanceFibers);
427
+ const wereFailures = MutableHashSet.size(failedRunners) > 0;
428
+ if (wereFailures) {
429
+ // Check if the failing runners are still reachable
430
+ yield* Effect.forEach(failedRunners, notifyUnhealthyRunner, {
431
+ discard: true
432
+ }).pipe(Effect.forkIn(scope));
433
+ yield* Effect.logWarning("Failed to rebalance runners: ", failedRunners);
434
+ }
435
+ if (wereFailures && immediate) {
436
+ // Try rebalancing again later if there were any failures
437
+ yield* Clock.sleep(config.rebalanceRetryInterval).pipe(Effect.zipRight(rebalance(immediate)), Effect.forkIn(scope));
438
+ }
439
+ yield* persistAssignments;
440
+ });
441
+ const checkRunnerHealth = Effect.suspend(() => Effect.forEach(MutableHashMap.keys(state.runners), notifyUnhealthyRunner, {
442
+ concurrency: "inherit",
443
+ discard: true
444
+ })).pipe(Effect.withConcurrency(4), Effect.asVoid);
445
+ yield* Effect.addFinalizer(() => persistAssignments.pipe(Effect.catchAllCause(cause => Effect.logWarning("Failed to persist assignments on shutdown", cause)), Effect.zipRight(persistRunners.pipe(Effect.catchAllCause(cause => Effect.logWarning("Failed to persist runners on shutdown", cause))))));
446
+ yield* Effect.forkIn(persistRunners, scope);
447
+ // Rebalance immediately if there are unassigned shards
448
+ yield* Effect.forkIn(rebalance(state.unassignedShards.length > 0), scope);
449
+ // Start a regular cluster rebalance at the configured interval
450
+ yield* rebalance(false).pipe(Effect.andThen(Effect.sleep(config.rebalanceInterval)), Effect.forever, Effect.forkIn(scope));
451
+ yield* checkRunnerHealth.pipe(Effect.andThen(Effect.sleep(config.runnerHealthCheckInterval)), Effect.forever, Effect.forkIn(scope));
452
+ yield* Effect.gen(function* () {
453
+ const queue = yield* PubSub.subscribe(events);
454
+ while (true) {
455
+ yield* Effect.logInfo("Shard manager event:", yield* Queue.take(queue));
456
+ }
457
+ }).pipe(Effect.forkIn(scope));
458
+ yield* Effect.logInfo("Shard manager initialized");
459
+ return ShardManager.of({
460
+ getAssignments,
461
+ shardingEvents: PubSub.subscribe(events),
462
+ register,
463
+ unregister,
464
+ rebalance,
465
+ notifyUnhealthyRunner,
466
+ checkRunnerHealth
467
+ });
468
+ });
469
+ /**
470
+ * @since 1.0.0
471
+ * @category layer
472
+ */
473
+ const layer = exports.layer = /*#__PURE__*/Layer.scoped(ShardManager, make);
15
474
  /**
16
475
  * @since 1.0.0
17
- * @category context
476
+ * @category Server
18
477
  */
19
- const ShardManager = exports.ShardManager = internal.shardManagerTag;
478
+ const layerServerHandlers = exports.layerServerHandlers = /*#__PURE__*/Rpcs.toLayer( /*#__PURE__*/Effect.gen(function* () {
479
+ const shardManager = yield* ShardManager;
480
+ const clock = yield* Effect.clock;
481
+ return {
482
+ Register: ({
483
+ runner
484
+ }) => shardManager.register(runner),
485
+ Unregister: ({
486
+ address
487
+ }) => shardManager.unregister(address),
488
+ NotifyUnhealthyRunner: ({
489
+ address
490
+ }) => shardManager.notifyUnhealthyRunner(address),
491
+ GetAssignments: () => shardManager.getAssignments,
492
+ ShardingEvents: Effect.fnUntraced(function* () {
493
+ const queue = yield* shardManager.shardingEvents;
494
+ const mailbox = yield* Mailbox.make();
495
+ yield* mailbox.offer(ShardingEvent.StreamStarted());
496
+ yield* Queue.takeBetween(queue, 1, Number.MAX_SAFE_INTEGER).pipe(Effect.flatMap(events => mailbox.offerAll(events)), Effect.forever, Effect.forkScoped);
497
+ return mailbox;
498
+ }),
499
+ GetTime: () => clock.currentTimeMillis
500
+ };
501
+ }));
20
502
  /**
21
503
  * @since 1.0.0
22
- * @category layers
504
+ * @category Server
23
505
  */
24
- const live = exports.live = internal.live;
506
+ const layerServer = exports.layerServer = /*#__PURE__*/RpcServer.layer(Rpcs, {
507
+ spanPrefix: "ShardManager",
508
+ disableTracing: true
509
+ }).pipe( /*#__PURE__*/Layer.provide(layerServerHandlers));
25
510
  //# sourceMappingURL=ShardManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShardManager.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ShardManagerTypeId","exports","ShardManager","shardManagerTag","live"],"sources":["../../src/ShardManager.ts"],"sourcesContent":[null],"mappings":";;;;;;AAOA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAsD,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAMtD;;;;AAIO,MAAMW,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAkBvB,QAAQ,CAACuB,kBAAkB;AAQ5E;;;;AAIO,MAAME,YAAY,GAAAD,OAAA,CAAAC,YAAA,GAAGzB,QAAQ,CAAC0B,eAAe;AAmBpD;;;;AAIO,MAAMC,IAAI,GAAAH,OAAA,CAAAG,IAAA,GAAG3B,QAAQ,CAAC2B,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"ShardManager.js","names":["Rpc","_interopRequireWildcard","require","RpcClient","RpcGroup","RpcServer","Arr","Clock","Config_","ConfigProvider","Context","Data","Deferred","Duration","Effect","Equal","FiberSet","_Function","Iterable","Layer","Mailbox","Metric","MutableHashMap","MutableHashSet","Option","PubSub","Queue","Schedule","Schema","_ClusterError","ClusterMetrics","_shardManager","MachineId","_Runner","_RunnerAddress","_RunnerHealth","_Runners","_ShardId","_ShardingConfig","_ShardStorage","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ShardManager","Tag","exports","Config","defaults","rebalanceDebounce","millis","rebalanceInterval","seconds","rebalanceRetryInterval","rebalanceRate","persistRetryCount","persistRetryInterval","runnerHealthCheckInterval","minutes","runnerPingTimeout","configConfig","all","duration","pipe","withDefault","withDescription","number","integer","configFromEnv","withConfigProvider","fromEnv","constantCase","layerConfig","config","succeed","layerConfigFromEnv","effect","ShardManagerClient","ShardingEventSchema","Union","TaggedStruct","address","RunnerAddress","shards","Array","ShardId","Rpcs","make","payload","runner","Runner","success","ReadonlyMap","key","value","stream","Number","ShardingEvent","taggedEnum","makeClientLocal","gen","runnerAddress","ShardingConfig","clock","Map","numberOfShards","machineId","of","register","sync","unregister","void","notifyUnhealthyRunner","getAssignments","shardingEvents","mailbox","offer","StreamStarted","getTime","currentTimeMillis","makeClientRpc","client","spanPrefix","disableTracing","Register","version","serverVersion","Unregister","NotifyUnhealthyRunner","GetAssignments","ShardingEvents","asMailbox","GetTime","layerClientLocal","layerClientRpc","scoped","provide","Protocol","clientProtocol","RpcClientProtocol","shardManagerAddress","storage","ShardStorage","runnersApi","Runners","runnerHealthApi","RunnerHealth","shardingConfig","state","orDie","State","fromStorage","scope","events","unbounded","incrementBy","runners","size","values","metric","isSome","tagged","assignedShards","toString","unassignedShards","increment","withRetry","retry","schedule","spaced","times","ignore","persistRunners","unsafeMakeSemaphore","withPermits","suspend","saveRunners","map","persistAssignments","saveAssignments","fnUntraced","runnerHealthChecked","isAlive","logWarning","updateShardsState","fail","RunnerNotRegistered","shardId","logInfo","pretty","now","unsafeCurrentTimeMillis","RunnerWithMetadata","registeredAt","publish","RunnerRegistered","length","rebalance","forkIn","unassignments","empty","shard","equals","push","none","remove","RunnerUnregistered","rebalancing","nextRebalanceImmediate","rebalanceDeferred","rebalanceFibers","immmediate","withFiberRuntime","fiber","rebalanceLoop","unsafeMake","id","await","immediate","deferred","undefined","runRebalance","intoDeferred","identity","onExit","fn","annotateCurrentSpan","sleep","assignments","changes","decideAssignmentsForUnassignedShards","decideAssignmentsForUnbalancedShards","logDebug","rebalances","failedRunners","run","ping","timeout","catchAll","add","awaitEmpty","failedUnassignments","Set","matchEffect","onFailure","onSuccess","shardCount","zipRight","ShardsUnassigned","from","forEach","delete","some","ShardsAssigned","wereFailures","discard","checkRunnerHealth","keys","concurrency","withConcurrency","asVoid","addFinalizer","catchAllCause","cause","andThen","forever","queue","subscribe","take","layer","layerServerHandlers","toLayer","shardManager","takeBetween","MAX_SAFE_INTEGER","flatMap","offerAll","forkScoped","layerServer"],"sources":["../../src/ShardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}