@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,105 +1,122 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import type * as Exit_ from "effect/Exit";
5
- import type * as PrimaryKey from "effect/PrimaryKey";
6
- import type * as Schema from "effect/Schema";
7
- import type * as Types from "effect/Types";
4
+ import type * as Rpc from "@effect/rpc/Rpc";
5
+ import type { Context } from "effect/Context";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Option from "effect/Option";
8
+ import type { PersistenceError } from "./ClusterError.js";
9
+ import { MalformedMessage } from "./ClusterError.js";
10
+ import * as Envelope from "./Envelope.js";
11
+ import type * as Reply from "./Reply.js";
8
12
  /**
9
- * A Message is a request for an entity that will process it.
10
- * A Message also has a PrimaryKey so that the receiver is eventually able to detect duplicated messages.
11
- *
12
13
  * @since 1.0.0
13
- * @category models
14
+ * @category incoming
14
15
  */
15
- export interface Message<A, AI, E, EI> extends Schema.SerializableWithResult<any, any, never, A, AI, E, EI, never>, PrimaryKey.PrimaryKey {
16
+ export type Incoming<R extends Rpc.Any> = IncomingRequest<R> | IncomingEnvelope;
17
+ /**
18
+ * @since 1.0.0
19
+ * @category incoming
20
+ */
21
+ export type IncomingLocal<R extends Rpc.Any> = IncomingRequestLocal<R> | IncomingEnvelope;
22
+ /**
23
+ * @since 1.0.0
24
+ * @category incoming
25
+ */
26
+ export declare const incomingLocalFromOutgoing: <R extends Rpc.Any>(self: Outgoing<R>) => IncomingLocal<R>;
27
+ declare const IncomingRequest_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
28
+ readonly _tag: "IncomingRequest";
29
+ };
30
+ /**
31
+ * @since 1.0.0
32
+ * @category incoming
33
+ */
34
+ export declare class IncomingRequest<R extends Rpc.Any> extends IncomingRequest_base<{
35
+ readonly envelope: Envelope.Request.PartialEncoded;
36
+ readonly lastSentReply: Option.Option<Reply.ReplyEncoded<R>>;
37
+ readonly respond: (reply: Reply.ReplyWithContext<R>) => Effect.Effect<void, MalformedMessage | PersistenceError>;
38
+ }> {
16
39
  }
40
+ declare const IncomingRequestLocal_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
41
+ readonly _tag: "IncomingRequestLocal";
42
+ };
17
43
  /**
18
44
  * @since 1.0.0
19
- * @category models
45
+ * @category outgoing
20
46
  */
21
- export declare namespace Message {
22
- /**
23
- * @since 1.0.0
24
- * @category models
25
- */
26
- type Any = Message<any, any, any, any> | Message<any, any, never, never>;
27
- /**
28
- * Extracts the success type from a `Message`.
29
- *
30
- * @since 1.0.0
31
- * @category utils
32
- */
33
- type Success<S> = S extends Message<infer A, infer _AI, infer _E, infer _EI> ? A : never;
34
- /**
35
- * Extracts the success type from a `Message`.
36
- *
37
- * @since 1.0.0
38
- * @category utils
39
- */
40
- type SuccessEncoded<S> = S extends Message<infer _A, infer _AI, infer _E, infer _EI> ? _AI : never;
41
- /**
42
- * Extracts the error type from a `Message`.
43
- *
44
- * @since 1.0.0
45
- * @category utils
46
- */
47
- type Error<S> = S extends Message<infer _A, infer _AI, infer E, infer _EI> ? E : never;
48
- /**
49
- * Extracts the error type from a `Message`.
50
- *
51
- * @since 1.0.0
52
- * @category utils
53
- */
54
- type ErrorEncoded<S> = S extends Message<infer _A, infer _AI, infer _E, infer _EI> ? _EI : never;
55
- /**
56
- * Extracts the exit type from a `Message`.
57
- *
58
- * @since 1.0.0
59
- * @category utils
60
- */
61
- type Exit<S> = S extends Schema.WithResult<infer A, infer _AI, infer E, infer _EI, infer _R> ? Exit_.Exit<A, E> : never;
47
+ export declare class IncomingRequestLocal<R extends Rpc.Any> extends IncomingRequestLocal_base<{
48
+ readonly envelope: Envelope.Request<R>;
49
+ readonly lastSentReply: Option.Option<Reply.Reply<R>>;
50
+ readonly respond: (reply: Reply.Reply<R>) => Effect.Effect<void, MalformedMessage | PersistenceError>;
51
+ }> {
62
52
  }
53
+ declare const IncomingEnvelope_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
54
+ readonly _tag: "IncomingEnvelope";
55
+ };
63
56
  /**
64
57
  * @since 1.0.0
65
- * @category schemas
58
+ * @category incoming
66
59
  */
67
- export interface TaggedMessageConstructor<Tag extends string, Self, R, IS, S, IE, E, IA, A> extends Schema.Schema<Self, Types.Simplify<IS & {
68
- readonly _tag: Tag;
69
- }>, R> {
70
- new (props: Types.Equals<S, {}> extends true ? void : S, disableValidation?: boolean): Schema.TaggedRequest<Tag, S, IS & {
71
- readonly _tag: Tag;
72
- }, never, A, IA, E, IE, never> & S & PrimaryKey.PrimaryKey;
60
+ export declare class IncomingEnvelope extends IncomingEnvelope_base<{
61
+ readonly _tag: "IncomingEnvelope";
62
+ readonly envelope: Envelope.AckChunk | Envelope.Interrupt;
63
+ }> {
73
64
  }
74
65
  /**
75
66
  * @since 1.0.0
76
- * @category schemas
67
+ * @category outgoing
77
68
  */
78
- export declare const TaggedMessage: <Self>() => <Tag extends string, E, IE, A, IA, Fields extends Schema.Struct.Fields>(tag: Tag, failure: Schema.Schema<E, IE, never>, success: Schema.Schema<A, IA, never>, fields: Fields, messageToId: (message: Schema.Struct.Encoded<Fields>) => string) => TaggedMessageConstructor<Tag, Self, Schema.Schema.Context<Fields[keyof Fields]>, Types.Simplify<Schema.Struct.Encoded<Fields>>, Types.Simplify<Schema.Struct.Type<Fields>>, IE, E, IA, A>;
69
+ export type Outgoing<R extends Rpc.Any> = OutgoingRequest<R> | OutgoingEnvelope;
70
+ declare const OutgoingRequest_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
71
+ readonly _tag: "OutgoingRequest";
72
+ };
73
+ /**
74
+ * @since 1.0.0
75
+ * @category outgoing
76
+ */
77
+ export declare class OutgoingRequest<R extends Rpc.Any> extends OutgoingRequest_base<{
78
+ readonly envelope: Envelope.Request<R>;
79
+ readonly context: Context<Rpc.Context<R>>;
80
+ readonly lastReceivedReply: Option.Option<Reply.Reply<R>>;
81
+ readonly rpc: R;
82
+ readonly respond: (reply: Reply.Reply<R>) => Effect.Effect<void, PersistenceError>;
83
+ }> {
84
+ /**
85
+ * @since 1.0.0
86
+ */
87
+ encodedCache?: Envelope.Request.PartialEncoded;
88
+ }
89
+ declare const OutgoingEnvelope_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
90
+ readonly _tag: "OutgoingEnvelope";
91
+ };
92
+ /**
93
+ * @since 1.0.0
94
+ * @category outgoing
95
+ */
96
+ export declare class OutgoingEnvelope extends OutgoingEnvelope_base<{
97
+ readonly envelope: Envelope.AckChunk | Envelope.Interrupt;
98
+ readonly rpc: Rpc.AnyWithProps;
99
+ }> {
100
+ }
79
101
  /**
80
102
  * @since 1.0.0
81
- * @category utils
103
+ * @category serialization / deserialization
82
104
  */
83
- export declare const isMessageWithResult: (value: unknown) => value is Message<unknown, unknown, unknown, unknown>;
105
+ export declare const serialize: <Rpc extends Rpc.Any>(message: Outgoing<Rpc>) => Effect.Effect<Envelope.Envelope.PartialEncoded, MalformedMessage>;
84
106
  /**
85
- * Extracts the exit schema from a Message. This schema will be used to encode the remote exit of the Message processor.
86
- *
87
107
  * @since 1.0.0
88
- * @category utils
108
+ * @category serialization / deserialization
89
109
  */
90
- export declare const exitSchema: <A extends Message.Any>(message: A) => Schema.Schema<Message.Exit<A>, unknown>;
110
+ export declare const serializeEnvelope: <Rpc extends Rpc.Any>(message: Outgoing<Rpc>) => Effect.Effect<Envelope.Envelope.Encoded, MalformedMessage>;
91
111
  /**
92
- * Extracts the failure schema from a Message. This schema will be used to encode remote failures of the Message processor.
93
- *
94
112
  * @since 1.0.0
95
- * @category utils
113
+ * @category serialization / deserialization
96
114
  */
97
- export declare const failureSchema: <A extends Message.Any>(message: A) => Schema.Schema<Message.Error<A>, unknown>;
115
+ export declare const serializeRequest: <Rpc extends Rpc.Any>(self: OutgoingRequest<Rpc>) => Effect.Effect<Envelope.Request.PartialEncoded, MalformedMessage>;
98
116
  /**
99
- * Extracts the success schema from a Message. This schema will be used to encode the remote success of the Message processor.
100
- *
101
117
  * @since 1.0.0
102
- * @category utils
118
+ * @category serialization / deserialization
103
119
  */
104
- export declare const successSchema: <A extends Message.Any>(message: A) => Schema.Schema<Message.Success<A>, unknown>;
120
+ export declare const deserializeLocal: <Rpc extends Rpc.Any>(self: Outgoing<Rpc>, encoded: Envelope.Envelope.PartialEncoded) => Effect.Effect<IncomingLocal<Rpc>, MalformedMessage>;
121
+ export {};
105
122
  //# sourceMappingURL=Message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../src/Message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../src/Message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,336 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Rpc from "@effect/rpc/Rpc";
5
+ import * as Context from "effect/Context";
6
+ import * as Data from "effect/Data";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Layer from "effect/Layer";
9
+ import * as Option from "effect/Option";
10
+ import type { PersistenceError } from "./ClusterError.js";
11
+ import { MalformedMessage } from "./ClusterError.js";
12
+ import type { EntityAddress } from "./EntityAddress.js";
13
+ import * as Envelope from "./Envelope.js";
14
+ import * as Message from "./Message.js";
15
+ import * as Reply from "./Reply.js";
16
+ import type { ShardId } from "./ShardId.js";
17
+ import type { ShardingConfig } from "./ShardingConfig.js";
18
+ import * as Snowflake from "./Snowflake.js";
19
+ declare const MessageStorage_base: Context.TagClass<MessageStorage, "@effect/cluster/MessageStorage", {
20
+ /**
21
+ * Save the provided message and its associated metadata.
22
+ */
23
+ readonly saveRequest: <R extends Rpc.Any>(envelope: Message.OutgoingRequest<R>) => Effect.Effect<SaveResult<R>, PersistenceError | MalformedMessage>;
24
+ /**
25
+ * Save the provided message and its associated metadata.
26
+ */
27
+ readonly saveEnvelope: (envelope: Message.OutgoingEnvelope) => Effect.Effect<void, PersistenceError | MalformedMessage>;
28
+ /**
29
+ * Save the provided `Reply` and its associated metadata.
30
+ */
31
+ readonly saveReply: <R extends Rpc.Any>(reply: Reply.ReplyWithContext<R>) => Effect.Effect<void, PersistenceError | MalformedMessage>;
32
+ /**
33
+ * Retrieves the replies for the specified requests.
34
+ *
35
+ * - Un-acknowledged chunk replies
36
+ * - WithExit replies
37
+ */
38
+ readonly repliesFor: <R extends Rpc.Any>(requests: Iterable<Message.OutgoingRequest<R>>) => Effect.Effect<Array<Reply.Reply<R>>, PersistenceError | MalformedMessage>;
39
+ /**
40
+ * For locally sent messages, register a handler to process the replies.
41
+ */
42
+ readonly registerReplyHandler: <R extends Rpc.Any>(message: Message.OutgoingRequest<R>) => Effect.Effect<void>;
43
+ /**
44
+ * Retrieves the unprocessed messages for the specified shards.
45
+ *
46
+ * A message is unprocessed when:
47
+ *
48
+ * - Requests that have no WithExit replies
49
+ * - Or they have no unacknowledged chunk replies
50
+ * - The latest AckChunk envelope
51
+ * - All Interrupt's for unprocessed requests
52
+ */
53
+ readonly unprocessedMessages: (shardIds: Iterable<ShardId>) => Effect.Effect<Array<Message.Incoming<any>>, PersistenceError>;
54
+ /**
55
+ * Retrieves the unprocessed messages by id.
56
+ */
57
+ readonly unprocessedMessagesById: <R extends Rpc.Any>(messageIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<Array<Message.Incoming<R>>, PersistenceError>;
58
+ /**
59
+ * Reset the mailbox state for the provided address.
60
+ */
61
+ readonly resetAddress: (address: EntityAddress) => Effect.Effect<void, PersistenceError>;
62
+ }>;
63
+ /**
64
+ * @since 1.0.0
65
+ * @category context
66
+ */
67
+ export declare class MessageStorage extends MessageStorage_base {
68
+ }
69
+ /**
70
+ * @since 1.0.0
71
+ * @category SaveResult
72
+ */
73
+ export type SaveResult<R extends Rpc.Any> = SaveResult.Success | SaveResult.Duplicate<R>;
74
+ /**
75
+ * @since 1.0.0
76
+ * @category SaveResult
77
+ */
78
+ export declare const SaveResult: {
79
+ readonly Success: <A>(args: void) => SaveResult.Success;
80
+ readonly Duplicate: <A>(args: {
81
+ readonly originalId: Snowflake.Snowflake;
82
+ readonly lastReceivedReply: Option.Option<Reply.Reply<any>>;
83
+ }) => SaveResult.Duplicate<any>;
84
+ readonly $is: <Tag extends "Success" | "Duplicate">(tag: Tag) => {
85
+ <T extends SaveResult<any>>(u: T): u is T & {
86
+ readonly _tag: Tag;
87
+ };
88
+ (u: unknown): u is Extract<SaveResult.Success, {
89
+ readonly _tag: Tag;
90
+ }> | Extract<SaveResult.Duplicate<any>, {
91
+ readonly _tag: Tag;
92
+ }>;
93
+ };
94
+ readonly $match: {
95
+ <A, B, C, D, Cases extends {
96
+ readonly Success: (args: SaveResult.Success) => any;
97
+ readonly Duplicate: (args: SaveResult.Duplicate<any>) => any;
98
+ }>(cases: Cases): (self: SaveResult<any>) => import("effect/Unify").Unify<ReturnType<Cases["Success" | "Duplicate"]>>;
99
+ <A, B, C, D, Cases extends {
100
+ readonly Success: (args: SaveResult.Success) => any;
101
+ readonly Duplicate: (args: SaveResult.Duplicate<any>) => any;
102
+ }>(self: SaveResult<any>, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Success" | "Duplicate"]>>;
103
+ };
104
+ };
105
+ /**
106
+ * @since 1.0.0
107
+ * @category SaveResult
108
+ */
109
+ export declare const SaveResultEncoded: {
110
+ readonly Success: Data.Case.Constructor<SaveResult.Success, "_tag">;
111
+ readonly Duplicate: Data.Case.Constructor<SaveResult.DuplicateEncoded, "_tag">;
112
+ readonly $is: <Tag extends "Success" | "Duplicate">(tag: Tag) => (u: unknown) => u is Extract<SaveResult.Success, {
113
+ readonly _tag: Tag;
114
+ }> | Extract<SaveResult.DuplicateEncoded, {
115
+ readonly _tag: Tag;
116
+ }>;
117
+ readonly $match: {
118
+ <Cases extends {
119
+ readonly Success: (args: SaveResult.Success) => any;
120
+ readonly Duplicate: (args: SaveResult.DuplicateEncoded) => any;
121
+ }>(cases: Cases): (value: SaveResult.Encoded) => import("effect/Unify").Unify<ReturnType<Cases["Success" | "Duplicate"]>>;
122
+ <Cases extends {
123
+ readonly Success: (args: SaveResult.Success) => any;
124
+ readonly Duplicate: (args: SaveResult.DuplicateEncoded) => any;
125
+ }>(value: SaveResult.Encoded, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Success" | "Duplicate"]>>;
126
+ };
127
+ };
128
+ /**
129
+ * @since 1.0.0
130
+ * @category SaveResult
131
+ */
132
+ export declare namespace SaveResult {
133
+ /**
134
+ * @since 1.0.0
135
+ * @category SaveResult
136
+ */
137
+ type Encoded = SaveResult.Success | SaveResult.DuplicateEncoded;
138
+ /**
139
+ * @since 1.0.0
140
+ * @category SaveResult
141
+ */
142
+ interface Success {
143
+ readonly _tag: "Success";
144
+ }
145
+ /**
146
+ * @since 1.0.0
147
+ * @category SaveResult
148
+ */
149
+ interface Duplicate<R extends Rpc.Any> {
150
+ readonly _tag: "Duplicate";
151
+ readonly originalId: Snowflake.Snowflake;
152
+ readonly lastReceivedReply: Option.Option<Reply.Reply<R>>;
153
+ }
154
+ /**
155
+ * @since 1.0.0
156
+ * @category SaveResult
157
+ */
158
+ interface DuplicateEncoded {
159
+ readonly _tag: "Duplicate";
160
+ readonly originalId: Snowflake.Snowflake;
161
+ readonly lastReceivedReply: Option.Option<Reply.ReplyEncoded<any>>;
162
+ }
163
+ /**
164
+ * @since 1.0.0
165
+ * @category SaveResult
166
+ */
167
+ interface Constructor extends Data.TaggedEnum.WithGenerics<1> {
168
+ readonly taggedEnum: SaveResult<this["A"]>;
169
+ }
170
+ }
171
+ /**
172
+ * @since 1.0.0
173
+ * @category Encoded
174
+ */
175
+ export type Encoded = {
176
+ /**
177
+ * Save the provided message and its associated metadata.
178
+ */
179
+ readonly saveEnvelope: (options: {
180
+ readonly envelope: Envelope.Envelope.Encoded;
181
+ readonly primaryKey: string | null;
182
+ readonly deliverAt: number | null;
183
+ }) => Effect.Effect<SaveResult.Encoded, PersistenceError>;
184
+ /**
185
+ * Save the provided `Reply` and its associated metadata.
186
+ */
187
+ readonly saveReply: (reply: Reply.ReplyEncoded<any>) => Effect.Effect<void, PersistenceError>;
188
+ /**
189
+ * Retrieves the replies for the specified requests.
190
+ *
191
+ * - Un-acknowledged chunk replies
192
+ * - WithExit replies
193
+ */
194
+ readonly repliesFor: (requestIds: Array<string>) => Effect.Effect<Array<Reply.ReplyEncoded<any>>, PersistenceError>;
195
+ /**
196
+ * Retrieves the unprocessed messages for the given shards.
197
+ *
198
+ * A message is unprocessed when:
199
+ *
200
+ * - Requests that have no WithExit replies
201
+ * - Or they have no unacknowledged chunk replies
202
+ * - The latest AckChunk envelope
203
+ * - All Interrupt's for unprocessed requests
204
+ */
205
+ readonly unprocessedMessages: (shardIds: ReadonlyArray<number>, now: number) => Effect.Effect<Array<{
206
+ readonly envelope: Envelope.Envelope.Encoded;
207
+ readonly lastSentReply: Option.Option<Reply.ReplyEncoded<any>>;
208
+ }>, PersistenceError>;
209
+ /**
210
+ * Retrieves the unprocessed messages by id.
211
+ */
212
+ readonly unprocessedMessagesById: (messageIds: ReadonlyArray<Snowflake.Snowflake>, now: number) => Effect.Effect<Array<{
213
+ readonly envelope: Envelope.Envelope.Encoded;
214
+ readonly lastSentReply: Option.Option<Reply.ReplyEncoded<any>>;
215
+ }>, PersistenceError>;
216
+ /**
217
+ * Reset the mailbox state for the provided address.
218
+ */
219
+ readonly resetAddress: (address: EntityAddress) => Effect.Effect<void, PersistenceError>;
220
+ };
221
+ /**
222
+ * @since 1.0.0
223
+ * @category Encoded
224
+ */
225
+ export type EncodedUnprocessedOptions<A> = {
226
+ readonly existingShards: Array<number>;
227
+ readonly newShards: Array<number>;
228
+ readonly cursor: Option.Option<A>;
229
+ };
230
+ /**
231
+ * @since 1.0.0
232
+ * @category Encoded
233
+ */
234
+ export type EncodedRepliesOptions<A> = {
235
+ readonly existingRequests: Array<string>;
236
+ readonly newRequests: Array<string>;
237
+ readonly cursor: Option.Option<A>;
238
+ };
239
+ /**
240
+ * @since 1.0.0
241
+ * @category constructors
242
+ */
243
+ export declare const make: (storage: Omit<MessageStorage["Type"], "registerReplyHandler">) => Effect.Effect<MessageStorage["Type"]>;
244
+ /**
245
+ * @since 1.0.0
246
+ * @category constructors
247
+ */
248
+ export declare const makeEncoded: (encoded: Encoded) => Effect.Effect<MessageStorage["Type"], never, Snowflake.Generator>;
249
+ /**
250
+ * @since 1.0.0
251
+ * @category Constructors
252
+ */
253
+ export declare const noop: MessageStorage["Type"];
254
+ /**
255
+ * @since 1.0.0
256
+ * @category Memory
257
+ */
258
+ export type MemoryEntry = {
259
+ readonly envelope: Envelope.Request.Encoded;
260
+ lastReceivedChunk: Option.Option<Reply.ChunkEncoded<any>>;
261
+ replies: Array<Reply.ReplyEncoded<any>>;
262
+ };
263
+ declare const MemoryDriver_base: Effect.Service.Class<MemoryDriver, "@effect/cluster/MessageStorage/MemoryDriver", {
264
+ readonly dependencies: readonly [Layer.Layer<Snowflake.Generator, never, never>];
265
+ readonly effect: Effect.Effect<{
266
+ readonly storage: {
267
+ /**
268
+ * Save the provided message and its associated metadata.
269
+ */
270
+ readonly saveRequest: <R extends Rpc.Any>(envelope: Message.OutgoingRequest<R>) => Effect.Effect<SaveResult<R>, PersistenceError | MalformedMessage>;
271
+ /**
272
+ * Save the provided message and its associated metadata.
273
+ */
274
+ readonly saveEnvelope: (envelope: Message.OutgoingEnvelope) => Effect.Effect<void, PersistenceError | MalformedMessage>;
275
+ /**
276
+ * Save the provided `Reply` and its associated metadata.
277
+ */
278
+ readonly saveReply: <R extends Rpc.Any>(reply: Reply.ReplyWithContext<R>) => Effect.Effect<void, PersistenceError | MalformedMessage>;
279
+ /**
280
+ * Retrieves the replies for the specified requests.
281
+ *
282
+ * - Un-acknowledged chunk replies
283
+ * - WithExit replies
284
+ */
285
+ readonly repliesFor: <R extends Rpc.Any>(requests: Iterable<Message.OutgoingRequest<R>>) => Effect.Effect<Array<Reply.Reply<R>>, PersistenceError | MalformedMessage>;
286
+ /**
287
+ * For locally sent messages, register a handler to process the replies.
288
+ */
289
+ readonly registerReplyHandler: <R extends Rpc.Any>(message: Message.OutgoingRequest<R>) => Effect.Effect<void>;
290
+ /**
291
+ * Retrieves the unprocessed messages for the specified shards.
292
+ *
293
+ * A message is unprocessed when:
294
+ *
295
+ * - Requests that have no WithExit replies
296
+ * - Or they have no unacknowledged chunk replies
297
+ * - The latest AckChunk envelope
298
+ * - All Interrupt's for unprocessed requests
299
+ */
300
+ readonly unprocessedMessages: (shardIds: Iterable<ShardId>) => Effect.Effect<Array<Message.Incoming<any>>, PersistenceError>;
301
+ /**
302
+ * Retrieves the unprocessed messages by id.
303
+ */
304
+ readonly unprocessedMessagesById: <R extends Rpc.Any>(messageIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<Array<Message.Incoming<R>>, PersistenceError>;
305
+ /**
306
+ * Reset the mailbox state for the provided address.
307
+ */
308
+ readonly resetAddress: (address: EntityAddress) => Effect.Effect<void, PersistenceError>;
309
+ };
310
+ readonly encoded: Encoded;
311
+ readonly requests: Map<string, MemoryEntry>;
312
+ readonly requestsByPrimaryKey: Map<string, MemoryEntry>;
313
+ readonly unprocessed: Set<Envelope.Request.Encoded>;
314
+ readonly replyIds: Set<string>;
315
+ readonly journal: Envelope.Envelope.Encoded[];
316
+ readonly cursors: WeakMap<{}, number>;
317
+ }, never, Snowflake.Generator>;
318
+ }>;
319
+ /**
320
+ * @since 1.0.0
321
+ * @category Memory
322
+ */
323
+ export declare class MemoryDriver extends MemoryDriver_base {
324
+ }
325
+ /**
326
+ * @since 1.0.0
327
+ * @category layers
328
+ */
329
+ export declare const layerNoop: Layer.Layer<MessageStorage>;
330
+ /**
331
+ * @since 1.0.0
332
+ * @category layers
333
+ */
334
+ export declare const layerMemory: Layer.Layer<MessageStorage | MemoryDriver, never, ShardingConfig>;
335
+ export {};
336
+ //# sourceMappingURL=MessageStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageStorage.d.ts","sourceRoot":"","sources":["../../src/MessageStorage.ts"],"names":[],"mappings":"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"}