@effect/cluster 0.28.4 → 0.29.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 (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 +731 -91
  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 +64 -133
  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 +729 -90
  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 +1059 -186
  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
@@ -1,48 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Effect from "effect/Effect"
5
- import type * as Either from "effect/Either"
6
- import type * as HashMap from "effect/HashMap"
7
- import type * as Message from "./Message.js"
8
- import type * as PodAddress from "./PodAddress.js"
9
- import type * as ShardingException from "./ShardingException.js"
10
-
11
- /**
12
- * An interface to communicate with a remote broadcast receiver
13
- *
14
- * @since 1.0.0
15
- * @category models
16
- */
17
- export interface Broadcaster<Msg extends Message.Message.Any> {
18
- /**
19
- * Broadcast a message without waiting for a response (fire and forget)
20
- *
21
- * You can use Effect timeout to get send timeouts. The default behaviour is to send the message indifinetely.
22
- * @since 1.0.0
23
- */
24
- readonly broadcastDiscard: (
25
- topicId: string
26
- ) => (message: Msg) => Effect.Effect<void, ShardingException.ShardingException>
27
-
28
- /**
29
- * Broadcast a message and wait for a response from each consumer
30
- *
31
- * You can use Effect timeout to get send timeouts. The default behaviour is to send the message indifinetely
32
- * @since 1.0.0
33
- */
34
- readonly broadcast: (
35
- topicId: string
36
- ) => <A extends Msg>(
37
- message: A
38
- ) => Effect.Effect<
39
- HashMap.HashMap<
40
- PodAddress.PodAddress,
41
- Either.Either<
42
- ShardingException.ShardingException | Message.Message.Error<A>,
43
- Message.Message.Success<A>
44
- >
45
- >,
46
- ShardingException.ShardingException
47
- >
48
- }
@@ -1,67 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as ConfigError from "effect/ConfigError"
5
- import type * as Context from "effect/Context"
6
- import type * as Duration from "effect/Duration"
7
- import type * as Layer from "effect/Layer"
8
- import * as internal from "./internal/managerConfig.js"
9
-
10
- /**
11
- * @since 1.0.0
12
- * @category symbols
13
- */
14
- export const ManagerConfigTypeId: unique symbol = internal.ManagerConfigTypeId
15
-
16
- /**
17
- * @since 1.0.0
18
- * @category symbols
19
- */
20
- export type ManagerConfigTypeId = typeof ManagerConfigTypeId
21
-
22
- /**
23
- * This is the Shard Manager configuration.
24
- *
25
- * @param numberOfShards number of shards (see documentation on how to choose this), should be same on all nodes
26
- * @param apiPort port to expose the GraphQL API
27
- * @param rebalanceInterval interval for regular rebalancing of shards
28
- * @param rebalanceRetryInterval retry interval for rebalancing when some shards failed to be rebalanced
29
- * @param pingTimeout time to wait for a pod to respond to a ping request
30
- * @param persistRetryInterval retry interval for persistence of pods and shard assignments
31
- * @param persistRetryCount max retry count for persistence of pods and shard assignments
32
- * @param rebalanceRate max ratio of shards to rebalance at once
33
- * @since 1.0.0
34
- * @category models
35
- */
36
- export interface ManagerConfig {
37
- readonly numberOfShards: number
38
- readonly apiPort: number
39
- readonly rebalanceInterval: Duration.Duration
40
- readonly rebalanceRetryInterval: Duration.Duration
41
- readonly pingTimeout: Duration.Duration
42
- readonly persistRetryInterval: Duration.Duration
43
- readonly persistRetryCount: number
44
- readonly rebalanceRate: number
45
- }
46
-
47
- /**
48
- * @since 1.0.0
49
- * @category context
50
- */
51
- export const ManagerConfig: Context.Tag<ManagerConfig, ManagerConfig> = internal.managerConfigTag
52
-
53
- /**
54
- * Uses the default as ManagerConfig.
55
- *
56
- * @since 1.0.0
57
- * @category utils
58
- */
59
- export const defaults: Layer.Layer<ManagerConfig> = internal.defaults
60
-
61
- /**
62
- * Reads the ManagerConfig from the provided Config.
63
- *
64
- * @since 1.0.0
65
- * @category constructors
66
- */
67
- export const fromConfig: Layer.Layer<ManagerConfig, ConfigError.ConfigError, never> = internal.fromConfig
@@ -1,126 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Effect from "effect/Effect"
5
- import type * as Schema from "effect/Schema"
6
- import * as internal from "./internal/messageState.js"
7
-
8
- /**
9
- * @since 1.0.0
10
- * @category symbols
11
- */
12
- export const MessageStateTypeId: unique symbol = internal.MessageStateTypeId
13
-
14
- /**
15
- * @since 1.0.0
16
- * @category symbols
17
- */
18
- export type MessageStateTypeId = typeof MessageStateTypeId
19
-
20
- /**
21
- * A message state given to just acknowledged messages.
22
- * This state tells the sender that the receiver has received the message and will eventually process it later.
23
- *
24
- * @since 1.0.0
25
- * @category models
26
- */
27
- export interface MessageStateAcknowledged {
28
- readonly [MessageStateTypeId]: MessageStateTypeId
29
- readonly _tag: "@effect/cluster/MessageState/Acknowledged"
30
- }
31
-
32
- /**
33
- * A message state given to processed messages.
34
- * This state tells the sender that the receiver has already received and processed the message.
35
- * This will also tell the sender the result for this message.
36
- *
37
- * @since 1.0.0
38
- * @category models
39
- */
40
- export interface MessageStateProcessed<A> {
41
- readonly [MessageStateTypeId]: MessageStateTypeId
42
- readonly _tag: "@effect/cluster/MessageState/Processed"
43
- readonly result: A
44
- }
45
-
46
- /**
47
- * Once a Message is sent to an entity to be processed,
48
- * the state of that message over that entity is either Acknoledged (not yet processed) or Processed.
49
- *
50
- * @since 1.0.0
51
- * @category models
52
- */
53
- export type MessageState<A> = MessageStateAcknowledged | MessageStateProcessed<A>
54
-
55
- /**
56
- * @since 1.0.0
57
- * @category models
58
- */
59
- export namespace MessageState {
60
- /**
61
- * @since 1.0.0
62
- * @category models
63
- */
64
- export type Encoded<I> = {
65
- readonly "@effect/cluster/MessageState": "@effect/cluster/MessageState"
66
- readonly _tag: "@effect/cluster/MessageState/Acknowledged"
67
- } | {
68
- readonly result: I
69
- readonly "@effect/cluster/MessageState": "@effect/cluster/MessageState"
70
- readonly _tag: "@effect/cluster/MessageState/Processed"
71
- }
72
- }
73
-
74
- /**
75
- * Ensures that the given value is a MessageState
76
- *
77
- * @since 1.0.0
78
- * @category utils
79
- */
80
- export const isMessageState = internal.isMessageState
81
-
82
- /**
83
- * Match over the possible states of a MessageState
84
- *
85
- * @since 1.0.0
86
- * @category utils
87
- */
88
- export const match = internal.match
89
-
90
- /**
91
- * Constructs an AcknowledgedMessageState.
92
- *
93
- * @since 1.0.0
94
- * @category constructors
95
- */
96
- export const Acknowledged: MessageStateAcknowledged = internal.Acknowledged
97
-
98
- /**
99
- * Constructs a ProcessedMessageState from the result of the message being processed.
100
- *
101
- * @since 1.0.0
102
- * @category constructors
103
- */
104
- export const Processed: <A>(result: A) => MessageStateProcessed<A> = internal.Processed
105
-
106
- /**
107
- * Effectfully transform the <A> type of the MessageState<A>.
108
- *
109
- * @since 1.0.0
110
- * @category utils
111
- */
112
- export const mapEffect: <A, B, R, E>(
113
- value: MessageState<A>,
114
- fn: (value: A) => Effect.Effect<B, E, R>
115
- ) => Effect.Effect<MessageState<B>, E, R> = internal.mapEffect
116
-
117
- /**
118
- * @since 1.0.0
119
- * @category schema
120
- */
121
- export const schema: <A, I>(
122
- result: Schema.Schema<A, I>
123
- ) => Schema.Schema<
124
- MessageState<A>,
125
- MessageState.Encoded<I>
126
- > = internal.schema
package/src/Messenger.ts DELETED
@@ -1,40 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Effect from "effect/Effect"
5
- import type * as Message from "./Message.js"
6
- import type * as ShardingException from "./ShardingException.js"
7
-
8
- /**
9
- * An interface to communicate with a remote entity.
10
- *
11
- * @tparam Msg the type of message that can be sent to this entity type
12
- * @since 1.0.0
13
- * @category models
14
- */
15
- export interface Messenger<Msg extends Message.Message.Any> {
16
- /**
17
- * Send a message without waiting for a response (fire and forget)
18
- *
19
- * You can use Effect timeout to get send timeouts. The default behaviour is to send the message indifinetely
20
- *
21
- * @since 1.0.0
22
- */
23
- sendDiscard(entityId: string): (message: Msg) => Effect.Effect<void, ShardingException.ShardingException>
24
-
25
- /**
26
- * Send a message and wait for a response.
27
- *
28
- * You can use Effect timeout to get send timeouts. The default behaviour is to send the message indifinetely
29
- *
30
- * @since 1.0.0
31
- */
32
- send(
33
- entityId: string
34
- ): <A extends Msg>(
35
- message: A
36
- ) => Effect.Effect<
37
- Message.Message.Success<A>,
38
- ShardingException.ShardingException | Message.Message.Error<A>
39
- >
40
- }
package/src/Pod.ts DELETED
@@ -1,95 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Schema from "effect/Schema"
5
- import { TypeIdSchema } from "./internal/utils.js"
6
- import * as PodAddress from "./PodAddress.js"
7
-
8
- /** @internal */
9
- const PodSymbolKey = "@effect/cluster/Pod"
10
-
11
- /**
12
- * @since 1.0.0
13
- * @category symbols
14
- */
15
- export const PodTypeId: unique symbol = Symbol.for(PodSymbolKey)
16
-
17
- /**
18
- * @since 1.0.0
19
- * @category symbols
20
- */
21
- export type PodTypeId = typeof PodTypeId
22
-
23
- /** @internal */
24
- const PodTypeIdSchema = TypeIdSchema(PodSymbolKey, PodTypeId)
25
-
26
- /**
27
- * A pod is an application server that is able to run entities. A pod can run multiple entities,
28
- * but a single entity will live on a given pod at a time.
29
- * Since this is an application server, it needs to have an unique identifier where it's addressed (PodAddress),
30
- * and has a version of the application that's running on it.
31
- * Version is used during the rebalance phase to give priority to newer application servers and slowly kill older ones.
32
- *
33
- * @since 1.0.0
34
- * @category models
35
- */
36
- export class Pod extends Schema.Class<Pod>(PodSymbolKey)({
37
- [PodTypeId]: Schema.propertySignature(PodTypeIdSchema).pipe(Schema.fromKey(PodSymbolKey)),
38
- address: PodAddress.schema,
39
- version: Schema.String
40
- }) {
41
- /**
42
- * @since 1.0.0
43
- */
44
- toString() {
45
- return `Pod(${this.address}, ${this.version})`
46
- }
47
- }
48
-
49
- /**
50
- * @since 1.0.0
51
- * @category models
52
- */
53
- export namespace Pod {
54
- /**
55
- * This is the shape that a Pod is represented over the wire.
56
- *
57
- * @since 1.0.0
58
- * @category models
59
- */
60
- export interface Encoded extends Schema.Schema.Encoded<typeof Pod> {}
61
- }
62
-
63
- /**
64
- * Given a value, ensures that it's a valid Pod.
65
- *
66
- * @since 1.0.0
67
- * @category utils
68
- */
69
- export function isPod(value: unknown): value is Pod {
70
- return (
71
- typeof value === "object" &&
72
- value !== null &&
73
- PodTypeId in value &&
74
- value[PodTypeId] === PodTypeId
75
- )
76
- }
77
-
78
- /**
79
- * Constructs a Pod from it's identifing PodAddress and application server version.
80
- *
81
- * @since 1.0.0
82
- * @category constructors
83
- */
84
- export function make(address: PodAddress.PodAddress, version: string): Pod {
85
- return new Pod({ [PodTypeId]: PodTypeId, address, version })
86
- }
87
-
88
- /**
89
- * @since 1.0.0
90
- * @category schema
91
- */
92
- export const schema: Schema.Schema<
93
- Pod,
94
- Pod.Encoded
95
- > = Schema.asSchema(Pod)
package/src/PodAddress.ts DELETED
@@ -1,94 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Schema from "effect/Schema"
5
- import { TypeIdSchema } from "./internal/utils.js"
6
-
7
- /** @internal */
8
- const PodAddressSymbolKey = "@effect/cluster/PodAddress"
9
-
10
- /**
11
- * @since 1.0.0
12
- * @category symbols
13
- */
14
- export const PodAddressTypeId: unique symbol = Symbol.for(PodAddressSymbolKey)
15
-
16
- /** @internal */
17
- export const PodAddressTypeIdSchema = TypeIdSchema(PodAddressSymbolKey, PodAddressTypeId)
18
-
19
- /**
20
- * @since 1.0.0
21
- * @category symbols
22
- */
23
- export type PodAddressTypeId = typeof PodAddressTypeId
24
-
25
- /**
26
- * A PodAddress is a unique identifier of a Pod (application server).
27
- * It is conventially built by using an address and a port, so that messaging implementations may use directly the
28
- * PodAddress to know how to connect to the specific Pod.
29
- *
30
- * @since 1.0.0
31
- * @category models
32
- */
33
- export class PodAddress extends Schema.Class<PodAddress>(PodAddressSymbolKey)({
34
- [PodAddressTypeId]: Schema.propertySignature(PodAddressTypeIdSchema).pipe(Schema.fromKey(PodAddressSymbolKey)),
35
- host: Schema.String,
36
- port: Schema.Number
37
- }) {
38
- /**
39
- * @since 1.0.0
40
- */
41
- toString() {
42
- return `PodAddress(${this.host}:${this.port})`
43
- }
44
- }
45
-
46
- /**
47
- * @since 1.0.0
48
- * @category models
49
- */
50
- export namespace PodAddress {
51
- /**
52
- * This is the shape one PodAddress has over the wire.
53
- *
54
- * @since 1.0.0
55
- * @category models
56
- */
57
- export interface Encoded extends Schema.Schema.Encoded<typeof PodAddress> {}
58
- }
59
-
60
- /**
61
- * Constructs a PodAddress from an host and a port.
62
- *
63
- * @since 1.0.0
64
- * @category constructors
65
- */
66
- export function make(host: string, port: number): PodAddress {
67
- return new PodAddress({ [PodAddressTypeId]: PodAddressTypeId, host, port })
68
- }
69
-
70
- /**
71
- * Ensures that the given value is a valid PodAddress.
72
- *
73
- * @since 1.0.0
74
- * @category utils
75
- */
76
- export function isPodAddress(value: unknown): value is PodAddress {
77
- return (
78
- typeof value === "object" &&
79
- value !== null &&
80
- PodAddressTypeId in value &&
81
- value[PodAddressTypeId] === PodAddressTypeId
82
- )
83
- }
84
-
85
- /**
86
- * This is the schema for a PodAddress.
87
- *
88
- * @since 1.0.0
89
- * @category schema
90
- */
91
- export const schema: Schema.Schema<
92
- PodAddress,
93
- PodAddress.Encoded
94
- > = Schema.asSchema(PodAddress)
package/src/Pods.ts DELETED
@@ -1,100 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Context from "effect/Context"
5
- import type * as Effect from "effect/Effect"
6
- import type * as HashSet from "effect/HashSet"
7
- import type * as Layer from "effect/Layer"
8
- import * as internal from "./internal/pods.js"
9
- import type * as MessageState from "./MessageState.js"
10
- import type * as PodAddress from "./PodAddress.js"
11
- import type * as SerializedEnvelope from "./SerializedEnvelope.js"
12
- import type * as SerializedMessage from "./SerializedMessage.js"
13
- import type * as ShardId from "./ShardId.js"
14
- import type * as ShardingException from "./ShardingException.js"
15
-
16
- /**
17
- * @since 1.0.0
18
- * @category symbols
19
- */
20
- export const PodsTypeId: unique symbol = internal.PodsTypeId
21
-
22
- /**
23
- * @since 1.0.0
24
- * @category symbols
25
- */
26
- export type PodsTypeId = typeof PodsTypeId
27
-
28
- /**
29
- * An interface to communicate with remote pods.
30
- * This is used by the Shard Manager for assigning and unassigning shards.
31
- * This is also used by pods for internal communication (forward messages to each other).
32
- *
33
- * @since 1.0.0
34
- * @category models
35
- */
36
- export interface Pods {
37
- /**
38
- * @since 1.0.0
39
- */
40
- readonly [PodsTypeId]: PodsTypeId
41
-
42
- /**
43
- * Notify a pod that it was assigned a list of shards
44
- * @since 1.0.0
45
- */
46
- readonly assignShards: (
47
- pod: PodAddress.PodAddress,
48
- shards: HashSet.HashSet<ShardId.ShardId>
49
- ) => Effect.Effect<void, ShardingException.PodUnavailableException>
50
-
51
- /**
52
- * Notify a pod that it was unassigned a list of shards
53
- * @since 1.0.0
54
- */
55
- readonly unassignShards: (
56
- pod: PodAddress.PodAddress,
57
- shards: HashSet.HashSet<ShardId.ShardId>
58
- ) => Effect.Effect<void, ShardingException.PodUnavailableException>
59
-
60
- /**
61
- * Check that a pod is responsive
62
- * @since 1.0.0
63
- */
64
- readonly ping: (pod: PodAddress.PodAddress) => Effect.Effect<void, ShardingException.PodUnavailableException>
65
-
66
- /**
67
- * Send a message to a pod and receive its message state
68
- * @since 1.0.0
69
- */
70
- readonly sendAndGetState: (
71
- pod: PodAddress.PodAddress,
72
- envelope: SerializedEnvelope.SerializedEnvelope
73
- ) => Effect.Effect<
74
- MessageState.MessageState<SerializedMessage.SerializedMessage>,
75
- ShardingException.ShardingException
76
- >
77
- }
78
-
79
- /**
80
- * @since 1.0.0
81
- * @category context
82
- */
83
- export const Pods: Context.Tag<Pods, Pods> = internal.podsTag
84
-
85
- /**
86
- * Constructs a Pods service from its implementation
87
- *
88
- * @since 1.0.0
89
- * @category context
90
- */
91
- export const make: (args: Omit<Pods, typeof PodsTypeId>) => Pods = internal.make
92
-
93
- /**
94
- * A layer that creates a service that does nothing when called.
95
- * Useful for testing ShardManager or when using Sharding.local.
96
- *
97
- * @since 1.0.0
98
- * @category layers
99
- */
100
- export const noop: Layer.Layer<Pods> = internal.noop
package/src/PodsHealth.ts DELETED
@@ -1,74 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Context from "effect/Context"
5
- import type * as Effect from "effect/Effect"
6
- import type * as Layer from "effect/Layer"
7
- import * as internal from "./internal/podsHealth.js"
8
- import type * as PodAddress from "./PodAddress.js"
9
- import type * as Pods from "./Pods.js"
10
-
11
- /**
12
- * @since 1.0.0
13
- * @category symbols
14
- */
15
- export const PodsHealthTypeId: unique symbol = internal.PodsHealthTypeId
16
-
17
- /**
18
- * @since 1.0.0
19
- * @category symbols
20
- */
21
- export type PodsHealthTypeId = typeof PodsHealthTypeId
22
-
23
- /**
24
- * An interface to check a pod's health.
25
- * This is used when a pod is unresponsive, to check if it should be unassigned all its shards or not.
26
- * If the pod is alive, shards will not be unassigned because the pods might still be processing messages and might be responsive again.
27
- * If the pod is not alive, shards can be safely reassigned somewhere else.
28
- * A typical implementation for this is using k8s to check if the pod still exists.
29
- *
30
- * @since 1.0.0
31
- * @category models
32
- */
33
- export interface PodsHealth {
34
- /**
35
- * @since 1.0.0
36
- */
37
- readonly [PodsHealthTypeId]: PodsHealthTypeId
38
-
39
- /**
40
- * Check if a pod is still alive.
41
- * @since 1.0.0
42
- */
43
- readonly isAlive: (podAddress: PodAddress.PodAddress) => Effect.Effect<boolean>
44
- }
45
-
46
- /**
47
- * Constructs a PodsHealth from its implementation
48
- *
49
- * @since 1.0.0
50
- * @category constructors
51
- */
52
- export const make: (args: Omit<PodsHealth, typeof PodsHealthTypeId>) => PodsHealth = internal.make
53
-
54
- /**
55
- * @since 1.0.0
56
- * @category context
57
- */
58
- export const PodsHealth: Context.Tag<PodsHealth, PodsHealth> = internal.podsHealthTag
59
-
60
- /**
61
- * A layer that considers pods as always alive.
62
- * This is useful for testing only.
63
- * @since 1.0.0
64
- * @category layers
65
- */
66
- export const noop: Layer.Layer<PodsHealth> = internal.noop
67
-
68
- /**
69
- * A layer that pings the pod directly to check if it's alive.
70
- * This is useful for developing and testing but not reliable in production.
71
- * @since 1.0.0
72
- * @category layers
73
- */
74
- export const local: Layer.Layer<PodsHealth, never, Pods.Pods> = internal.local