@effect/cluster 0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b

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 (375) hide show
  1. package/AtLeastOnce/package.json +6 -0
  2. package/AtLeastOnceStorage/package.json +6 -0
  3. package/Broadcaster/package.json +6 -0
  4. package/LICENSE +21 -0
  5. package/ManagerConfig/package.json +6 -0
  6. package/Message/package.json +6 -0
  7. package/MessageState/package.json +6 -0
  8. package/Messenger/package.json +6 -0
  9. package/Pod/package.json +6 -0
  10. package/PodAddress/package.json +6 -0
  11. package/Pods/package.json +6 -0
  12. package/PodsHealth/package.json +6 -0
  13. package/PoisonPill/package.json +6 -0
  14. package/README.md +3 -0
  15. package/RecipientAddress/package.json +6 -0
  16. package/RecipientBehaviour/package.json +6 -0
  17. package/RecipientBehaviourContext/package.json +6 -0
  18. package/RecipientType/package.json +6 -0
  19. package/Serialization/package.json +6 -0
  20. package/SerializedEnvelope/package.json +6 -0
  21. package/SerializedMessage/package.json +6 -0
  22. package/ShardId/package.json +6 -0
  23. package/ShardManager/package.json +6 -0
  24. package/ShardManagerClient/package.json +6 -0
  25. package/Sharding/package.json +6 -0
  26. package/ShardingConfig/package.json +6 -0
  27. package/ShardingEvent/package.json +6 -0
  28. package/ShardingException/package.json +6 -0
  29. package/ShardingRegistrationEvent/package.json +6 -0
  30. package/Storage/package.json +6 -0
  31. package/dist/cjs/AtLeastOnce.js +43 -0
  32. package/dist/cjs/AtLeastOnce.js.map +1 -0
  33. package/dist/cjs/AtLeastOnceStorage.js +48 -0
  34. package/dist/cjs/AtLeastOnceStorage.js.map +1 -0
  35. package/dist/cjs/Broadcaster.js +6 -0
  36. package/dist/cjs/Broadcaster.js.map +1 -0
  37. package/dist/cjs/ManagerConfig.js +57 -0
  38. package/dist/cjs/ManagerConfig.js.map +1 -0
  39. package/dist/cjs/Message.js +64 -0
  40. package/dist/cjs/Message.js.map +1 -0
  41. package/dist/cjs/MessageState.js +78 -0
  42. package/dist/cjs/MessageState.js.map +1 -0
  43. package/dist/cjs/Messenger.js +6 -0
  44. package/dist/cjs/Messenger.js.map +1 -0
  45. package/dist/cjs/Pod.js +101 -0
  46. package/dist/cjs/Pod.js.map +1 -0
  47. package/dist/cjs/PodAddress.js +100 -0
  48. package/dist/cjs/PodAddress.js.map +1 -0
  49. package/dist/cjs/Pods.js +58 -0
  50. package/dist/cjs/Pods.js.map +1 -0
  51. package/dist/cjs/PodsHealth.js +64 -0
  52. package/dist/cjs/PodsHealth.js.map +1 -0
  53. package/dist/cjs/PoisonPill.js +101 -0
  54. package/dist/cjs/PoisonPill.js.map +1 -0
  55. package/dist/cjs/RecipientAddress.js +102 -0
  56. package/dist/cjs/RecipientAddress.js.map +1 -0
  57. package/dist/cjs/RecipientBehaviour.js +61 -0
  58. package/dist/cjs/RecipientBehaviour.js.map +1 -0
  59. package/dist/cjs/RecipientBehaviourContext.js +87 -0
  60. package/dist/cjs/RecipientBehaviourContext.js.map +1 -0
  61. package/dist/cjs/RecipientType.js +142 -0
  62. package/dist/cjs/RecipientType.js.map +1 -0
  63. package/dist/cjs/Serialization.js +55 -0
  64. package/dist/cjs/Serialization.js.map +1 -0
  65. package/dist/cjs/SerializedEnvelope.js +111 -0
  66. package/dist/cjs/SerializedEnvelope.js.map +1 -0
  67. package/dist/cjs/SerializedMessage.js +87 -0
  68. package/dist/cjs/SerializedMessage.js.map +1 -0
  69. package/dist/cjs/ShardId.js +89 -0
  70. package/dist/cjs/ShardId.js.map +1 -0
  71. package/dist/cjs/ShardManager.js +48 -0
  72. package/dist/cjs/ShardManager.js.map +1 -0
  73. package/dist/cjs/ShardManagerClient.js +53 -0
  74. package/dist/cjs/ShardManagerClient.js.map +1 -0
  75. package/dist/cjs/Sharding.js +129 -0
  76. package/dist/cjs/Sharding.js.map +1 -0
  77. package/dist/cjs/ShardingConfig.js +64 -0
  78. package/dist/cjs/ShardingConfig.js.map +1 -0
  79. package/dist/cjs/ShardingEvent.js +72 -0
  80. package/dist/cjs/ShardingEvent.js.map +1 -0
  81. package/dist/cjs/ShardingException.js +130 -0
  82. package/dist/cjs/ShardingException.js.map +1 -0
  83. package/dist/cjs/ShardingRegistrationEvent.js +44 -0
  84. package/dist/cjs/ShardingRegistrationEvent.js.map +1 -0
  85. package/dist/cjs/Storage.js +63 -0
  86. package/dist/cjs/Storage.js.map +1 -0
  87. package/dist/cjs/index.js +88 -0
  88. package/dist/cjs/index.js.map +1 -0
  89. package/dist/cjs/internal/atLeastOnce.js +58 -0
  90. package/dist/cjs/internal/atLeastOnce.js.map +1 -0
  91. package/dist/cjs/internal/atLeastOnceStorage.js +186 -0
  92. package/dist/cjs/internal/atLeastOnceStorage.js.map +1 -0
  93. package/dist/cjs/internal/entityManager.js +191 -0
  94. package/dist/cjs/internal/entityManager.js.map +1 -0
  95. package/dist/cjs/internal/entityState.js +70 -0
  96. package/dist/cjs/internal/entityState.js.map +1 -0
  97. package/dist/cjs/internal/managerConfig.js +69 -0
  98. package/dist/cjs/internal/managerConfig.js.map +1 -0
  99. package/dist/cjs/internal/message.js +68 -0
  100. package/dist/cjs/internal/message.js.map +1 -0
  101. package/dist/cjs/internal/messageState.js +102 -0
  102. package/dist/cjs/internal/messageState.js.map +1 -0
  103. package/dist/cjs/internal/podWithMetadata.js +77 -0
  104. package/dist/cjs/internal/podWithMetadata.js.map +1 -0
  105. package/dist/cjs/internal/pods.js +58 -0
  106. package/dist/cjs/internal/pods.js.map +1 -0
  107. package/dist/cjs/internal/podsHealth.js +63 -0
  108. package/dist/cjs/internal/podsHealth.js.map +1 -0
  109. package/dist/cjs/internal/recipientBehaviour.js +75 -0
  110. package/dist/cjs/internal/recipientBehaviour.js.map +1 -0
  111. package/dist/cjs/internal/recipientBehaviourContext.js +59 -0
  112. package/dist/cjs/internal/recipientBehaviourContext.js.map +1 -0
  113. package/dist/cjs/internal/serialization.js +72 -0
  114. package/dist/cjs/internal/serialization.js.map +1 -0
  115. package/dist/cjs/internal/shardManager.js +291 -0
  116. package/dist/cjs/internal/shardManager.js.map +1 -0
  117. package/dist/cjs/internal/shardManagerClient.js +71 -0
  118. package/dist/cjs/internal/shardManagerClient.js.map +1 -0
  119. package/dist/cjs/internal/shardManagerState.js +67 -0
  120. package/dist/cjs/internal/shardManagerState.js.map +1 -0
  121. package/dist/cjs/internal/sharding.js +329 -0
  122. package/dist/cjs/internal/sharding.js.map +1 -0
  123. package/dist/cjs/internal/shardingConfig.js +79 -0
  124. package/dist/cjs/internal/shardingConfig.js.map +1 -0
  125. package/dist/cjs/internal/storage.js +75 -0
  126. package/dist/cjs/internal/storage.js.map +1 -0
  127. package/dist/cjs/internal/utils.js +92 -0
  128. package/dist/cjs/internal/utils.js.map +1 -0
  129. package/dist/dts/AtLeastOnce.d.ts +20 -0
  130. package/dist/dts/AtLeastOnce.d.ts.map +1 -0
  131. package/dist/dts/AtLeastOnceStorage.d.ts +75 -0
  132. package/dist/dts/AtLeastOnceStorage.d.ts.map +1 -0
  133. package/dist/dts/Broadcaster.d.ts +32 -0
  134. package/dist/dts/Broadcaster.d.ts.map +1 -0
  135. package/dist/dts/ManagerConfig.d.ts +61 -0
  136. package/dist/dts/ManagerConfig.d.ts.map +1 -0
  137. package/dist/dts/Message.d.ts +106 -0
  138. package/dist/dts/Message.d.ts.map +1 -0
  139. package/dist/dts/MessageState.d.ts +107 -0
  140. package/dist/dts/MessageState.d.ts.map +1 -0
  141. package/dist/dts/Messenger.d.ts +32 -0
  142. package/dist/dts/Messenger.d.ts.map +1 -0
  143. package/dist/dts/Pod.d.ts +81 -0
  144. package/dist/dts/Pod.d.ts.map +1 -0
  145. package/dist/dts/PodAddress.d.ts +80 -0
  146. package/dist/dts/PodAddress.d.ts.map +1 -0
  147. package/dist/dts/Pods.d.ts +78 -0
  148. package/dist/dts/Pods.d.ts.map +1 -0
  149. package/dist/dts/PodsHealth.d.ts +66 -0
  150. package/dist/dts/PodsHealth.d.ts.map +1 -0
  151. package/dist/dts/PoisonPill.d.ts +78 -0
  152. package/dist/dts/PoisonPill.d.ts.map +1 -0
  153. package/dist/dts/RecipientAddress.d.ts +57 -0
  154. package/dist/dts/RecipientAddress.d.ts.map +1 -0
  155. package/dist/dts/RecipientBehaviour.d.ts +72 -0
  156. package/dist/dts/RecipientBehaviour.d.ts.map +1 -0
  157. package/dist/dts/RecipientBehaviourContext.d.ts +83 -0
  158. package/dist/dts/RecipientBehaviourContext.d.ts.map +1 -0
  159. package/dist/dts/RecipientType.d.ts +96 -0
  160. package/dist/dts/RecipientType.d.ts.map +1 -0
  161. package/dist/dts/Serialization.d.ts +58 -0
  162. package/dist/dts/Serialization.d.ts.map +1 -0
  163. package/dist/dts/SerializedEnvelope.d.ts +87 -0
  164. package/dist/dts/SerializedEnvelope.d.ts.map +1 -0
  165. package/dist/dts/SerializedMessage.d.ts +66 -0
  166. package/dist/dts/SerializedMessage.d.ts.map +1 -0
  167. package/dist/dts/ShardId.d.ts +70 -0
  168. package/dist/dts/ShardId.d.ts.map +1 -0
  169. package/dist/dts/ShardManager.d.ts +44 -0
  170. package/dist/dts/ShardManager.d.ts.map +1 -0
  171. package/dist/dts/ShardManagerClient.d.ts +50 -0
  172. package/dist/dts/ShardManagerClient.d.ts.map +1 -0
  173. package/dist/dts/Sharding.d.ts +146 -0
  174. package/dist/dts/Sharding.d.ts.map +1 -0
  175. package/dist/dts/ShardingConfig.d.ts +69 -0
  176. package/dist/dts/ShardingConfig.d.ts.map +1 -0
  177. package/dist/dts/ShardingEvent.d.ts +90 -0
  178. package/dist/dts/ShardingEvent.d.ts.map +1 -0
  179. package/dist/dts/ShardingException.d.ts +125 -0
  180. package/dist/dts/ShardingException.d.ts.map +1 -0
  181. package/dist/dts/ShardingRegistrationEvent.d.ts +44 -0
  182. package/dist/dts/ShardingRegistrationEvent.d.ts.map +1 -0
  183. package/dist/dts/Storage.d.ts +78 -0
  184. package/dist/dts/Storage.d.ts.map +1 -0
  185. package/dist/dts/index.d.ts +113 -0
  186. package/dist/dts/index.d.ts.map +1 -0
  187. package/dist/dts/internal/atLeastOnce.d.ts +2 -0
  188. package/dist/dts/internal/atLeastOnce.d.ts.map +1 -0
  189. package/dist/dts/internal/atLeastOnceStorage.d.ts +2 -0
  190. package/dist/dts/internal/atLeastOnceStorage.d.ts.map +1 -0
  191. package/dist/dts/internal/entityManager.d.ts +2 -0
  192. package/dist/dts/internal/entityManager.d.ts.map +1 -0
  193. package/dist/dts/internal/entityState.d.ts +21 -0
  194. package/dist/dts/internal/entityState.d.ts.map +1 -0
  195. package/dist/dts/internal/managerConfig.d.ts +2 -0
  196. package/dist/dts/internal/managerConfig.d.ts.map +1 -0
  197. package/dist/dts/internal/message.d.ts +9 -0
  198. package/dist/dts/internal/message.d.ts.map +1 -0
  199. package/dist/dts/internal/messageState.d.ts +2 -0
  200. package/dist/dts/internal/messageState.d.ts.map +1 -0
  201. package/dist/dts/internal/podWithMetadata.d.ts +2 -0
  202. package/dist/dts/internal/podWithMetadata.d.ts.map +1 -0
  203. package/dist/dts/internal/pods.d.ts +2 -0
  204. package/dist/dts/internal/pods.d.ts.map +1 -0
  205. package/dist/dts/internal/podsHealth.d.ts +2 -0
  206. package/dist/dts/internal/podsHealth.d.ts.map +1 -0
  207. package/dist/dts/internal/recipientBehaviour.d.ts +2 -0
  208. package/dist/dts/internal/recipientBehaviour.d.ts.map +1 -0
  209. package/dist/dts/internal/recipientBehaviourContext.d.ts +2 -0
  210. package/dist/dts/internal/recipientBehaviourContext.d.ts.map +1 -0
  211. package/dist/dts/internal/serialization.d.ts +2 -0
  212. package/dist/dts/internal/serialization.d.ts.map +1 -0
  213. package/dist/dts/internal/shardManager.d.ts +12 -0
  214. package/dist/dts/internal/shardManager.d.ts.map +1 -0
  215. package/dist/dts/internal/shardManagerClient.d.ts +2 -0
  216. package/dist/dts/internal/shardManagerClient.d.ts.map +1 -0
  217. package/dist/dts/internal/shardManagerState.d.ts +26 -0
  218. package/dist/dts/internal/shardManagerState.d.ts.map +1 -0
  219. package/dist/dts/internal/sharding.d.ts +2 -0
  220. package/dist/dts/internal/sharding.d.ts.map +1 -0
  221. package/dist/dts/internal/shardingConfig.d.ts +2 -0
  222. package/dist/dts/internal/shardingConfig.d.ts.map +1 -0
  223. package/dist/dts/internal/storage.d.ts +2 -0
  224. package/dist/dts/internal/storage.d.ts.map +1 -0
  225. package/dist/dts/internal/utils.d.ts +2 -0
  226. package/dist/dts/internal/utils.d.ts.map +1 -0
  227. package/dist/esm/AtLeastOnce.js +12 -0
  228. package/dist/esm/AtLeastOnce.js.map +1 -0
  229. package/dist/esm/AtLeastOnceStorage.js +17 -0
  230. package/dist/esm/AtLeastOnceStorage.js.map +1 -0
  231. package/dist/esm/Broadcaster.js +2 -0
  232. package/dist/esm/Broadcaster.js.map +1 -0
  233. package/dist/esm/ManagerConfig.js +26 -0
  234. package/dist/esm/ManagerConfig.js.map +1 -0
  235. package/dist/esm/Message.js +33 -0
  236. package/dist/esm/Message.js.map +1 -0
  237. package/dist/esm/MessageState.js +47 -0
  238. package/dist/esm/MessageState.js.map +1 -0
  239. package/dist/esm/Messenger.js +2 -0
  240. package/dist/esm/Messenger.js.map +1 -0
  241. package/dist/esm/Pod.js +65 -0
  242. package/dist/esm/Pod.js.map +1 -0
  243. package/dist/esm/PodAddress.js +64 -0
  244. package/dist/esm/PodAddress.js.map +1 -0
  245. package/dist/esm/Pods.js +27 -0
  246. package/dist/esm/Pods.js.map +1 -0
  247. package/dist/esm/PodsHealth.js +33 -0
  248. package/dist/esm/PodsHealth.js.map +1 -0
  249. package/dist/esm/PoisonPill.js +65 -0
  250. package/dist/esm/PoisonPill.js.map +1 -0
  251. package/dist/esm/RecipientAddress.js +67 -0
  252. package/dist/esm/RecipientAddress.js.map +1 -0
  253. package/dist/esm/RecipientBehaviour.js +30 -0
  254. package/dist/esm/RecipientBehaviour.js.map +1 -0
  255. package/dist/esm/RecipientBehaviourContext.js +56 -0
  256. package/dist/esm/RecipientBehaviourContext.js.map +1 -0
  257. package/dist/esm/RecipientType.js +105 -0
  258. package/dist/esm/RecipientType.js.map +1 -0
  259. package/dist/esm/Serialization.js +24 -0
  260. package/dist/esm/Serialization.js.map +1 -0
  261. package/dist/esm/SerializedEnvelope.js +75 -0
  262. package/dist/esm/SerializedEnvelope.js.map +1 -0
  263. package/dist/esm/SerializedMessage.js +51 -0
  264. package/dist/esm/SerializedMessage.js.map +1 -0
  265. package/dist/esm/ShardId.js +54 -0
  266. package/dist/esm/ShardId.js.map +1 -0
  267. package/dist/esm/ShardManager.js +17 -0
  268. package/dist/esm/ShardManager.js.map +1 -0
  269. package/dist/esm/ShardManagerClient.js +22 -0
  270. package/dist/esm/ShardManagerClient.js.map +1 -0
  271. package/dist/esm/Sharding.js +98 -0
  272. package/dist/esm/Sharding.js.map +1 -0
  273. package/dist/esm/ShardingConfig.js +33 -0
  274. package/dist/esm/ShardingConfig.js.map +1 -0
  275. package/dist/esm/ShardingEvent.js +62 -0
  276. package/dist/esm/ShardingEvent.js.map +1 -0
  277. package/dist/esm/ShardingException.js +91 -0
  278. package/dist/esm/ShardingException.js.map +1 -0
  279. package/dist/esm/ShardingRegistrationEvent.js +36 -0
  280. package/dist/esm/ShardingRegistrationEvent.js.map +1 -0
  281. package/dist/esm/Storage.js +32 -0
  282. package/dist/esm/Storage.js.map +1 -0
  283. package/dist/esm/index.js +113 -0
  284. package/dist/esm/index.js.map +1 -0
  285. package/dist/esm/internal/atLeastOnce.js +26 -0
  286. package/dist/esm/internal/atLeastOnce.js.map +1 -0
  287. package/dist/esm/internal/atLeastOnceStorage.js +154 -0
  288. package/dist/esm/internal/atLeastOnceStorage.js.map +1 -0
  289. package/dist/esm/internal/entityManager.js +159 -0
  290. package/dist/esm/internal/entityManager.js.map +1 -0
  291. package/dist/esm/internal/entityState.js +35 -0
  292. package/dist/esm/internal/entityState.js.map +1 -0
  293. package/dist/esm/internal/managerConfig.js +38 -0
  294. package/dist/esm/internal/managerConfig.js.map +1 -0
  295. package/dist/esm/internal/message.js +32 -0
  296. package/dist/esm/internal/message.js.map +1 -0
  297. package/dist/esm/internal/messageState.js +66 -0
  298. package/dist/esm/internal/messageState.js.map +1 -0
  299. package/dist/esm/internal/podWithMetadata.js +41 -0
  300. package/dist/esm/internal/podWithMetadata.js.map +1 -0
  301. package/dist/esm/internal/pods.js +25 -0
  302. package/dist/esm/internal/pods.js.map +1 -0
  303. package/dist/esm/internal/podsHealth.js +30 -0
  304. package/dist/esm/internal/podsHealth.js.map +1 -0
  305. package/dist/esm/internal/recipientBehaviour.js +42 -0
  306. package/dist/esm/internal/recipientBehaviour.js.map +1 -0
  307. package/dist/esm/internal/recipientBehaviourContext.js +26 -0
  308. package/dist/esm/internal/recipientBehaviourContext.js.map +1 -0
  309. package/dist/esm/internal/serialization.js +39 -0
  310. package/dist/esm/internal/serialization.js.map +1 -0
  311. package/dist/esm/internal/shardManager.js +256 -0
  312. package/dist/esm/internal/shardManager.js.map +1 -0
  313. package/dist/esm/internal/shardManagerClient.js +38 -0
  314. package/dist/esm/internal/shardManagerClient.js.map +1 -0
  315. package/dist/esm/internal/shardManagerState.js +36 -0
  316. package/dist/esm/internal/shardManagerState.js.map +1 -0
  317. package/dist/esm/internal/sharding.js +288 -0
  318. package/dist/esm/internal/sharding.js.map +1 -0
  319. package/dist/esm/internal/shardingConfig.js +47 -0
  320. package/dist/esm/internal/shardingConfig.js.map +1 -0
  321. package/dist/esm/internal/storage.js +42 -0
  322. package/dist/esm/internal/storage.js.map +1 -0
  323. package/dist/esm/internal/utils.js +56 -0
  324. package/dist/esm/internal/utils.js.map +1 -0
  325. package/dist/esm/package.json +4 -0
  326. package/package.json +259 -0
  327. package/src/AtLeastOnce.ts +28 -0
  328. package/src/AtLeastOnceStorage.ts +96 -0
  329. package/src/Broadcaster.ts +48 -0
  330. package/src/ManagerConfig.ts +67 -0
  331. package/src/Message.ts +132 -0
  332. package/src/MessageState.ts +126 -0
  333. package/src/Messenger.ts +40 -0
  334. package/src/Pod.ts +95 -0
  335. package/src/PodAddress.ts +94 -0
  336. package/src/Pods.ts +100 -0
  337. package/src/PodsHealth.ts +74 -0
  338. package/src/PoisonPill.ts +105 -0
  339. package/src/RecipientAddress.ts +72 -0
  340. package/src/RecipientBehaviour.ts +108 -0
  341. package/src/RecipientBehaviourContext.ts +101 -0
  342. package/src/RecipientType.ts +134 -0
  343. package/src/Serialization.ts +72 -0
  344. package/src/SerializedEnvelope.ts +109 -0
  345. package/src/SerializedMessage.ts +82 -0
  346. package/src/ShardId.ts +79 -0
  347. package/src/ShardManager.ts +53 -0
  348. package/src/ShardManagerClient.ts +57 -0
  349. package/src/Sharding.ts +214 -0
  350. package/src/ShardingConfig.ts +76 -0
  351. package/src/ShardingEvent.ts +121 -0
  352. package/src/ShardingException.ts +151 -0
  353. package/src/ShardingRegistrationEvent.ts +62 -0
  354. package/src/Storage.ts +92 -0
  355. package/src/index.ts +139 -0
  356. package/src/internal/atLeastOnce.ts +59 -0
  357. package/src/internal/atLeastOnceStorage.ts +218 -0
  358. package/src/internal/entityManager.ts +404 -0
  359. package/src/internal/entityState.ts +64 -0
  360. package/src/internal/managerConfig.ts +84 -0
  361. package/src/internal/message.ts +64 -0
  362. package/src/internal/messageState.ts +98 -0
  363. package/src/internal/podWithMetadata.ts +72 -0
  364. package/src/internal/pods.ts +29 -0
  365. package/src/internal/podsHealth.ts +39 -0
  366. package/src/internal/recipientBehaviour.ts +133 -0
  367. package/src/internal/recipientBehaviourContext.ts +70 -0
  368. package/src/internal/serialization.ts +59 -0
  369. package/src/internal/shardManager.ts +593 -0
  370. package/src/internal/shardManagerClient.ts +49 -0
  371. package/src/internal/shardManagerState.ts +80 -0
  372. package/src/internal/sharding.ts +793 -0
  373. package/src/internal/shardingConfig.ts +97 -0
  374. package/src/internal/storage.ts +60 -0
  375. package/src/internal/utils.ts +54 -0
package/package.json ADDED
@@ -0,0 +1,259 @@
1
+ {
2
+ "name": "@effect/cluster",
3
+ "version": "0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b",
4
+ "description": "Unified interfaces for common cluster-specific services",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/Effect-TS/effect.git",
9
+ "directory": "packages/cluster"
10
+ },
11
+ "sideEffects": [],
12
+ "peerDependencies": {
13
+ "@effect/schema": "^0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b",
14
+ "@effect/sql": "^0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b",
15
+ "effect": "^0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b"
16
+ },
17
+ "publishConfig": {
18
+ "provenance": true
19
+ },
20
+ "main": "./dist/cjs/index.js",
21
+ "module": "./dist/esm/index.js",
22
+ "types": "./dist/dts/index.d.ts",
23
+ "exports": {
24
+ "./package.json": "./package.json",
25
+ ".": {
26
+ "types": "./dist/dts/index.d.ts",
27
+ "import": "./dist/esm/index.js",
28
+ "default": "./dist/cjs/index.js"
29
+ },
30
+ "./AtLeastOnce": {
31
+ "types": "./dist/dts/AtLeastOnce.d.ts",
32
+ "import": "./dist/esm/AtLeastOnce.js",
33
+ "default": "./dist/cjs/AtLeastOnce.js"
34
+ },
35
+ "./AtLeastOnceStorage": {
36
+ "types": "./dist/dts/AtLeastOnceStorage.d.ts",
37
+ "import": "./dist/esm/AtLeastOnceStorage.js",
38
+ "default": "./dist/cjs/AtLeastOnceStorage.js"
39
+ },
40
+ "./Broadcaster": {
41
+ "types": "./dist/dts/Broadcaster.d.ts",
42
+ "import": "./dist/esm/Broadcaster.js",
43
+ "default": "./dist/cjs/Broadcaster.js"
44
+ },
45
+ "./ManagerConfig": {
46
+ "types": "./dist/dts/ManagerConfig.d.ts",
47
+ "import": "./dist/esm/ManagerConfig.js",
48
+ "default": "./dist/cjs/ManagerConfig.js"
49
+ },
50
+ "./Message": {
51
+ "types": "./dist/dts/Message.d.ts",
52
+ "import": "./dist/esm/Message.js",
53
+ "default": "./dist/cjs/Message.js"
54
+ },
55
+ "./MessageState": {
56
+ "types": "./dist/dts/MessageState.d.ts",
57
+ "import": "./dist/esm/MessageState.js",
58
+ "default": "./dist/cjs/MessageState.js"
59
+ },
60
+ "./Messenger": {
61
+ "types": "./dist/dts/Messenger.d.ts",
62
+ "import": "./dist/esm/Messenger.js",
63
+ "default": "./dist/cjs/Messenger.js"
64
+ },
65
+ "./Pod": {
66
+ "types": "./dist/dts/Pod.d.ts",
67
+ "import": "./dist/esm/Pod.js",
68
+ "default": "./dist/cjs/Pod.js"
69
+ },
70
+ "./PodAddress": {
71
+ "types": "./dist/dts/PodAddress.d.ts",
72
+ "import": "./dist/esm/PodAddress.js",
73
+ "default": "./dist/cjs/PodAddress.js"
74
+ },
75
+ "./Pods": {
76
+ "types": "./dist/dts/Pods.d.ts",
77
+ "import": "./dist/esm/Pods.js",
78
+ "default": "./dist/cjs/Pods.js"
79
+ },
80
+ "./PodsHealth": {
81
+ "types": "./dist/dts/PodsHealth.d.ts",
82
+ "import": "./dist/esm/PodsHealth.js",
83
+ "default": "./dist/cjs/PodsHealth.js"
84
+ },
85
+ "./PoisonPill": {
86
+ "types": "./dist/dts/PoisonPill.d.ts",
87
+ "import": "./dist/esm/PoisonPill.js",
88
+ "default": "./dist/cjs/PoisonPill.js"
89
+ },
90
+ "./RecipientAddress": {
91
+ "types": "./dist/dts/RecipientAddress.d.ts",
92
+ "import": "./dist/esm/RecipientAddress.js",
93
+ "default": "./dist/cjs/RecipientAddress.js"
94
+ },
95
+ "./RecipientBehaviour": {
96
+ "types": "./dist/dts/RecipientBehaviour.d.ts",
97
+ "import": "./dist/esm/RecipientBehaviour.js",
98
+ "default": "./dist/cjs/RecipientBehaviour.js"
99
+ },
100
+ "./RecipientBehaviourContext": {
101
+ "types": "./dist/dts/RecipientBehaviourContext.d.ts",
102
+ "import": "./dist/esm/RecipientBehaviourContext.js",
103
+ "default": "./dist/cjs/RecipientBehaviourContext.js"
104
+ },
105
+ "./RecipientType": {
106
+ "types": "./dist/dts/RecipientType.d.ts",
107
+ "import": "./dist/esm/RecipientType.js",
108
+ "default": "./dist/cjs/RecipientType.js"
109
+ },
110
+ "./Serialization": {
111
+ "types": "./dist/dts/Serialization.d.ts",
112
+ "import": "./dist/esm/Serialization.js",
113
+ "default": "./dist/cjs/Serialization.js"
114
+ },
115
+ "./SerializedEnvelope": {
116
+ "types": "./dist/dts/SerializedEnvelope.d.ts",
117
+ "import": "./dist/esm/SerializedEnvelope.js",
118
+ "default": "./dist/cjs/SerializedEnvelope.js"
119
+ },
120
+ "./SerializedMessage": {
121
+ "types": "./dist/dts/SerializedMessage.d.ts",
122
+ "import": "./dist/esm/SerializedMessage.js",
123
+ "default": "./dist/cjs/SerializedMessage.js"
124
+ },
125
+ "./ShardId": {
126
+ "types": "./dist/dts/ShardId.d.ts",
127
+ "import": "./dist/esm/ShardId.js",
128
+ "default": "./dist/cjs/ShardId.js"
129
+ },
130
+ "./ShardManager": {
131
+ "types": "./dist/dts/ShardManager.d.ts",
132
+ "import": "./dist/esm/ShardManager.js",
133
+ "default": "./dist/cjs/ShardManager.js"
134
+ },
135
+ "./ShardManagerClient": {
136
+ "types": "./dist/dts/ShardManagerClient.d.ts",
137
+ "import": "./dist/esm/ShardManagerClient.js",
138
+ "default": "./dist/cjs/ShardManagerClient.js"
139
+ },
140
+ "./Sharding": {
141
+ "types": "./dist/dts/Sharding.d.ts",
142
+ "import": "./dist/esm/Sharding.js",
143
+ "default": "./dist/cjs/Sharding.js"
144
+ },
145
+ "./ShardingConfig": {
146
+ "types": "./dist/dts/ShardingConfig.d.ts",
147
+ "import": "./dist/esm/ShardingConfig.js",
148
+ "default": "./dist/cjs/ShardingConfig.js"
149
+ },
150
+ "./ShardingEvent": {
151
+ "types": "./dist/dts/ShardingEvent.d.ts",
152
+ "import": "./dist/esm/ShardingEvent.js",
153
+ "default": "./dist/cjs/ShardingEvent.js"
154
+ },
155
+ "./ShardingException": {
156
+ "types": "./dist/dts/ShardingException.d.ts",
157
+ "import": "./dist/esm/ShardingException.js",
158
+ "default": "./dist/cjs/ShardingException.js"
159
+ },
160
+ "./ShardingRegistrationEvent": {
161
+ "types": "./dist/dts/ShardingRegistrationEvent.d.ts",
162
+ "import": "./dist/esm/ShardingRegistrationEvent.js",
163
+ "default": "./dist/cjs/ShardingRegistrationEvent.js"
164
+ },
165
+ "./Storage": {
166
+ "types": "./dist/dts/Storage.d.ts",
167
+ "import": "./dist/esm/Storage.js",
168
+ "default": "./dist/cjs/Storage.js"
169
+ }
170
+ },
171
+ "typesVersions": {
172
+ "*": {
173
+ "AtLeastOnce": [
174
+ "./dist/dts/AtLeastOnce.d.ts"
175
+ ],
176
+ "AtLeastOnceStorage": [
177
+ "./dist/dts/AtLeastOnceStorage.d.ts"
178
+ ],
179
+ "Broadcaster": [
180
+ "./dist/dts/Broadcaster.d.ts"
181
+ ],
182
+ "ManagerConfig": [
183
+ "./dist/dts/ManagerConfig.d.ts"
184
+ ],
185
+ "Message": [
186
+ "./dist/dts/Message.d.ts"
187
+ ],
188
+ "MessageState": [
189
+ "./dist/dts/MessageState.d.ts"
190
+ ],
191
+ "Messenger": [
192
+ "./dist/dts/Messenger.d.ts"
193
+ ],
194
+ "Pod": [
195
+ "./dist/dts/Pod.d.ts"
196
+ ],
197
+ "PodAddress": [
198
+ "./dist/dts/PodAddress.d.ts"
199
+ ],
200
+ "Pods": [
201
+ "./dist/dts/Pods.d.ts"
202
+ ],
203
+ "PodsHealth": [
204
+ "./dist/dts/PodsHealth.d.ts"
205
+ ],
206
+ "PoisonPill": [
207
+ "./dist/dts/PoisonPill.d.ts"
208
+ ],
209
+ "RecipientAddress": [
210
+ "./dist/dts/RecipientAddress.d.ts"
211
+ ],
212
+ "RecipientBehaviour": [
213
+ "./dist/dts/RecipientBehaviour.d.ts"
214
+ ],
215
+ "RecipientBehaviourContext": [
216
+ "./dist/dts/RecipientBehaviourContext.d.ts"
217
+ ],
218
+ "RecipientType": [
219
+ "./dist/dts/RecipientType.d.ts"
220
+ ],
221
+ "Serialization": [
222
+ "./dist/dts/Serialization.d.ts"
223
+ ],
224
+ "SerializedEnvelope": [
225
+ "./dist/dts/SerializedEnvelope.d.ts"
226
+ ],
227
+ "SerializedMessage": [
228
+ "./dist/dts/SerializedMessage.d.ts"
229
+ ],
230
+ "ShardId": [
231
+ "./dist/dts/ShardId.d.ts"
232
+ ],
233
+ "ShardManager": [
234
+ "./dist/dts/ShardManager.d.ts"
235
+ ],
236
+ "ShardManagerClient": [
237
+ "./dist/dts/ShardManagerClient.d.ts"
238
+ ],
239
+ "Sharding": [
240
+ "./dist/dts/Sharding.d.ts"
241
+ ],
242
+ "ShardingConfig": [
243
+ "./dist/dts/ShardingConfig.d.ts"
244
+ ],
245
+ "ShardingEvent": [
246
+ "./dist/dts/ShardingEvent.d.ts"
247
+ ],
248
+ "ShardingException": [
249
+ "./dist/dts/ShardingException.d.ts"
250
+ ],
251
+ "ShardingRegistrationEvent": [
252
+ "./dist/dts/ShardingRegistrationEvent.d.ts"
253
+ ],
254
+ "Storage": [
255
+ "./dist/dts/Storage.d.ts"
256
+ ]
257
+ }
258
+ }
259
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Duration from "effect/Duration"
5
+ import type * as Effect from "effect/Effect"
6
+ import type * as Scope from "effect/Scope"
7
+ import type * as AtLeastOnceStorage from "./AtLeastOnceStorage.js"
8
+ import * as internal from "./internal/atLeastOnce.js"
9
+ import type * as RecipientBehaviour from "./RecipientBehaviour.js"
10
+ import type * as Sharding from "./Sharding.js"
11
+
12
+ /**
13
+ * @since 1.0.0
14
+ * @category constructors
15
+ */
16
+ export const atLeastOnceRecipientBehaviour: <Msg, R>(
17
+ fa: RecipientBehaviour.RecipientBehaviour<Msg, R>
18
+ ) => RecipientBehaviour.RecipientBehaviour<Msg, R | AtLeastOnceStorage.AtLeastOnceStorage> =
19
+ internal.atLeastOnceRecipientBehaviour
20
+
21
+ /**
22
+ * @since 1.0.0
23
+ * @category utils
24
+ */
25
+ export const runPendingMessageSweeperScoped: (
26
+ interval: Duration.Duration
27
+ ) => Effect.Effect<void, never, AtLeastOnceStorage.AtLeastOnceStorage | Sharding.Sharding | Scope.Scope> =
28
+ internal.runPendingMessageSweeperScoped
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { Message } from "@effect/cluster/Message"
5
+ import type { SqlClient } from "@effect/sql/SqlClient"
6
+ import type { SqlError } from "@effect/sql/SqlError"
7
+ import type { Tag } from "effect/Context"
8
+ import type { Effect } from "effect/Effect"
9
+ import type { Layer } from "effect/Layer"
10
+ import type { Stream } from "effect/Stream"
11
+ import * as Internal from "./internal/atLeastOnceStorage.js"
12
+ import type { RecipientType } from "./RecipientType.js"
13
+ import type { Serialization } from "./Serialization.js"
14
+ import type { SerializedEnvelope } from "./SerializedEnvelope.js"
15
+ import type { ShardId } from "./ShardId.js"
16
+
17
+ /**
18
+ * @since 1.0.0
19
+ * @category symbols
20
+ */
21
+ export const TypeId: unique symbol = Internal.TypeId
22
+
23
+ /**
24
+ * @since 1.0.0
25
+ * @category symbols
26
+ */
27
+ export type TypeId = typeof TypeId
28
+
29
+ /**
30
+ * @since 1.0.0
31
+ * @category models
32
+ */
33
+ export interface AtLeastOnceStorage extends AtLeastOnceStorage.Proto {
34
+ /**
35
+ * Upserts a message into the storage, eventually returning the already
36
+ * existing message state as result in the storage.
37
+ */
38
+ upsert<Msg extends Message.Any>(
39
+ recipientType: RecipientType<Msg>,
40
+ shardId: ShardId,
41
+ entityId: string,
42
+ message: Msg
43
+ ): Effect<void>
44
+
45
+ /**
46
+ * Marks the specified message as processed to prevent additional attempts to
47
+ * send the message.
48
+ */
49
+ markAsProcessed<Msg extends Message.Any>(
50
+ recipientType: RecipientType<Msg>,
51
+ shardId: ShardId,
52
+ entityId: string,
53
+ message: Msg
54
+ ): Effect<void>
55
+
56
+ /**
57
+ * Returns a stream of messages that will be sent to the local pod as a second
58
+ * attempt.
59
+ */
60
+ sweepPending(shardIds: Iterable<ShardId>): Stream<SerializedEnvelope>
61
+ }
62
+
63
+ /**
64
+ * @since 1.0.0
65
+ * @category context
66
+ */
67
+ export const AtLeastOnceStorage: Tag<AtLeastOnceStorage, AtLeastOnceStorage> = Internal.atLeastOnceStorageTag
68
+
69
+ /**
70
+ * @since 1.0.0
71
+ */
72
+ export declare namespace AtLeastOnceStorage {
73
+ /**
74
+ * @since 1.0.0
75
+ * @category models
76
+ */
77
+ export interface Proto {
78
+ readonly [TypeId]: TypeId
79
+ }
80
+
81
+ /**
82
+ * @since 1.0.0
83
+ * @category models
84
+ */
85
+ export interface MakeOptions {
86
+ readonly table: string
87
+ }
88
+ }
89
+
90
+ /**
91
+ * @since 1.0.0
92
+ * @category context
93
+ */
94
+ export const layer: (
95
+ options: AtLeastOnceStorage.MakeOptions
96
+ ) => Layer<AtLeastOnceStorage, SqlError, SqlClient | Serialization> = Internal.layer
@@ -0,0 +1,48 @@
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
+ }
@@ -0,0 +1,67 @@
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
package/src/Message.ts ADDED
@@ -0,0 +1,132 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Schema from "@effect/schema/Schema"
5
+ import type * as Serializable from "@effect/schema/Serializable"
6
+ import type * as Exit_ from "effect/Exit"
7
+ import type * as PrimaryKey from "effect/PrimaryKey"
8
+ import type * as Types from "effect/Types"
9
+ import * as internal from "./internal/message.js"
10
+
11
+ /**
12
+ * A Message is a request for an entity that will process it.
13
+ * A Message also has a PrimaryKey so that the receiver is eventually able to detect duplicated messages.
14
+ *
15
+ * @since 1.0.0
16
+ * @category models
17
+ */
18
+ export interface Message<A, AI, E, EI>
19
+ extends Serializable.SerializableWithResult<any, any, never, A, AI, E, EI, never>, PrimaryKey.PrimaryKey
20
+ {}
21
+
22
+ /**
23
+ * @since 1.0.0
24
+ * @category models
25
+ */
26
+ export namespace Message {
27
+ /**
28
+ * @since 1.0.0
29
+ * @category models
30
+ */
31
+ export type Any =
32
+ | Message<any, any, any, any>
33
+ | Message<any, any, never, never>
34
+
35
+ /**
36
+ * Extracts the success type from a `Message`.
37
+ *
38
+ * @since 1.0.0
39
+ * @category utils
40
+ */
41
+ export type Success<S> = S extends Message<infer A, infer _AI, infer _E, infer _EI> ? A : never
42
+
43
+ /**
44
+ * Extracts the success type from a `Message`.
45
+ *
46
+ * @since 1.0.0
47
+ * @category utils
48
+ */
49
+ export type SuccessEncoded<S> = S extends Message<infer _A, infer _AI, infer _E, infer _EI> ? _AI : never
50
+
51
+ /**
52
+ * Extracts the error type from a `Message`.
53
+ *
54
+ * @since 1.0.0
55
+ * @category utils
56
+ */
57
+ export type Error<S> = S extends Message<infer _A, infer _AI, infer E, infer _EI> ? E : never
58
+
59
+ /**
60
+ * Extracts the error type from a `Message`.
61
+ *
62
+ * @since 1.0.0
63
+ * @category utils
64
+ */
65
+ export type ErrorEncoded<S> = S extends Message<infer _A, infer _AI, infer _E, infer _EI> ? _EI : never
66
+
67
+ /**
68
+ * Extracts the exit type from a `Message`.
69
+ *
70
+ * @since 1.0.0
71
+ * @category utils
72
+ */
73
+ export type Exit<S> = S extends Serializable.WithResult<infer A, infer _AI, infer E, infer _EI, infer _R> ?
74
+ Exit_.Exit<A, E>
75
+ : never
76
+ }
77
+
78
+ /**
79
+ * @since 1.0.0
80
+ * @category schemas
81
+ */
82
+ export interface TaggedMessageConstructor<Tag extends string, Self, R, IS, S, IE, E, IA, A>
83
+ extends Schema.Schema<Self, Types.Simplify<IS & { readonly _tag: Tag }>, R>
84
+ {
85
+ new(
86
+ props: Types.Equals<S, {}> extends true ? void : S,
87
+ disableValidation?: boolean
88
+ ): Schema.TaggedRequest<Tag, S, IS & { readonly _tag: Tag }, never, A, IA, E, IE, never> & S & PrimaryKey.PrimaryKey
89
+ }
90
+
91
+ /**
92
+ * @since 1.0.0
93
+ * @category schemas
94
+ */
95
+ export const TaggedMessage = internal.TaggedMessage_
96
+
97
+ /**
98
+ * @since 1.0.0
99
+ * @category utils
100
+ */
101
+ export const isMessageWithResult: (value: unknown) => value is Message<unknown, unknown, unknown, unknown> =
102
+ internal.isMessageWithResult
103
+
104
+ /**
105
+ * Extracts the exit schema from a Message. This schema will be used to encode the remote exit of the Message processor.
106
+ *
107
+ * @since 1.0.0
108
+ * @category utils
109
+ */
110
+ export const exitSchema: <A extends Message.Any>(
111
+ message: A
112
+ ) => Schema.Schema<Message.Exit<A>, unknown> = internal.exitSchema
113
+
114
+ /**
115
+ * Extracts the failure schema from a Message. This schema will be used to encode remote failures of the Message processor.
116
+ *
117
+ * @since 1.0.0
118
+ * @category utils
119
+ */
120
+ export const failureSchema: <A extends Message.Any>(
121
+ message: A
122
+ ) => Schema.Schema<Message.Error<A>, unknown> = internal.failureSchema
123
+
124
+ /**
125
+ * Extracts the success schema from a Message. This schema will be used to encode the remote success of the Message processor.
126
+ *
127
+ * @since 1.0.0
128
+ * @category utils
129
+ */
130
+ export const successSchema: <A extends Message.Any>(
131
+ message: A
132
+ ) => Schema.Schema<Message.Success<A>, unknown> = internal.successSchema