@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.
- package/ClusterError/package.json +6 -0
- package/ClusterMetrics/package.json +6 -0
- package/ClusterSchema/package.json +6 -0
- package/DeliverAt/package.json +6 -0
- package/Entity/package.json +6 -0
- package/EntityAddress/package.json +6 -0
- package/EntityId/package.json +6 -0
- package/EntityType/package.json +6 -0
- package/Envelope/package.json +6 -0
- package/HttpCommon/package.json +6 -0
- package/HttpRunner/package.json +6 -0
- package/HttpShardManager/package.json +6 -0
- package/MachineId/package.json +6 -0
- package/MessageStorage/package.json +6 -0
- package/README.md +2 -2
- package/Reply/package.json +6 -0
- package/Runner/package.json +6 -0
- package/RunnerAddress/package.json +6 -0
- package/RunnerHealth/package.json +6 -0
- package/RunnerServer/package.json +6 -0
- package/Runners/package.json +6 -0
- package/ShardStorage/package.json +6 -0
- package/Singleton/package.json +6 -0
- package/SingletonAddress/package.json +6 -0
- package/Snowflake/package.json +6 -0
- package/SocketRunner/package.json +6 -0
- package/SocketShardManager/package.json +6 -0
- package/SqlMessageStorage/package.json +6 -0
- package/SqlShardStorage/package.json +6 -0
- package/SynchronizedClock/package.json +6 -0
- package/dist/cjs/ClusterError.js +180 -0
- package/dist/cjs/ClusterError.js.map +1 -0
- package/dist/cjs/ClusterMetrics.js +63 -0
- package/dist/cjs/ClusterMetrics.js.map +1 -0
- package/dist/cjs/{Pods.js → ClusterSchema.js} +10 -22
- package/dist/cjs/ClusterSchema.js.map +1 -0
- package/dist/cjs/DeliverAt.js +30 -0
- package/dist/cjs/DeliverAt.js.map +1 -0
- package/dist/cjs/Entity.js +187 -0
- package/dist/cjs/Entity.js.map +1 -0
- package/dist/cjs/EntityAddress.js +54 -0
- package/dist/cjs/EntityAddress.js.map +1 -0
- package/dist/cjs/{AtLeastOnce.js → EntityId.js} +6 -7
- package/dist/cjs/EntityId.js.map +1 -0
- package/dist/cjs/{ShardManagerClient.js → EntityType.js} +5 -16
- package/dist/cjs/EntityType.js.map +1 -0
- package/dist/cjs/Envelope.js +168 -0
- package/dist/cjs/Envelope.js.map +1 -0
- package/dist/cjs/HttpCommon.js +49 -0
- package/dist/cjs/HttpCommon.js.map +1 -0
- package/dist/cjs/HttpRunner.js +108 -0
- package/dist/cjs/HttpRunner.js.map +1 -0
- package/dist/cjs/HttpShardManager.js +140 -0
- package/dist/cjs/HttpShardManager.js.map +1 -0
- package/dist/cjs/{AtLeastOnceStorage.js → MachineId.js} +11 -9
- package/dist/cjs/MachineId.js.map +1 -0
- package/dist/cjs/Message.js +99 -18
- package/dist/cjs/Message.js.map +1 -1
- package/dist/cjs/MessageStorage.js +356 -0
- package/dist/cjs/MessageStorage.js.map +1 -0
- package/dist/cjs/Reply.js +200 -0
- package/dist/cjs/Reply.js.map +1 -0
- package/dist/cjs/Runner.js +79 -0
- package/dist/cjs/Runner.js.map +1 -0
- package/dist/cjs/RunnerAddress.js +63 -0
- package/dist/cjs/RunnerAddress.js.map +1 -0
- package/dist/cjs/RunnerHealth.js +68 -0
- package/dist/cjs/RunnerHealth.js.map +1 -0
- package/dist/cjs/RunnerServer.js +125 -0
- package/dist/cjs/RunnerServer.js.map +1 -0
- package/dist/cjs/Runners.js +344 -0
- package/dist/cjs/Runners.js.map +1 -0
- package/dist/cjs/ShardId.js +7 -46
- package/dist/cjs/ShardId.js.map +1 -1
- package/dist/cjs/ShardManager.js +493 -8
- package/dist/cjs/ShardManager.js.map +1 -1
- package/dist/cjs/ShardStorage.js +139 -0
- package/dist/cjs/ShardStorage.js.map +1 -0
- package/dist/cjs/Sharding.js +731 -91
- package/dist/cjs/Sharding.js.map +1 -1
- package/dist/cjs/ShardingConfig.js +85 -18
- package/dist/cjs/ShardingConfig.js.map +1 -1
- package/dist/cjs/ShardingRegistrationEvent.js +26 -32
- package/dist/cjs/ShardingRegistrationEvent.js.map +1 -1
- package/dist/cjs/{ManagerConfig.js → Singleton.js} +11 -20
- package/dist/cjs/Singleton.js.map +1 -0
- package/dist/cjs/SingletonAddress.js +50 -0
- package/dist/cjs/SingletonAddress.js.map +1 -0
- package/dist/cjs/Snowflake.js +133 -0
- package/dist/cjs/Snowflake.js.map +1 -0
- package/dist/cjs/SocketRunner.js +40 -0
- package/dist/cjs/SocketRunner.js.map +1 -0
- package/dist/cjs/SocketShardManager.js +33 -0
- package/dist/cjs/SocketShardManager.js.map +1 -0
- package/dist/cjs/SqlMessageStorage.js +668 -0
- package/dist/cjs/SqlMessageStorage.js.map +1 -0
- package/dist/cjs/SqlShardStorage.js +228 -0
- package/dist/cjs/SqlShardStorage.js.map +1 -0
- package/dist/cjs/SynchronizedClock.js +66 -0
- package/dist/cjs/SynchronizedClock.js.map +1 -0
- package/dist/cjs/index.js +57 -45
- package/dist/cjs/internal/entityManager.js +311 -143
- package/dist/cjs/internal/entityManager.js.map +1 -1
- package/dist/cjs/internal/entityReaper.js +47 -0
- package/dist/cjs/internal/entityReaper.js.map +1 -0
- package/dist/cjs/internal/hash.js +20 -0
- package/dist/cjs/internal/hash.js.map +1 -0
- package/dist/cjs/internal/interruptors.js +9 -0
- package/dist/cjs/internal/interruptors.js.map +1 -0
- package/dist/cjs/internal/resourceMap.js +88 -0
- package/dist/cjs/internal/resourceMap.js.map +1 -0
- package/dist/cjs/internal/resourceRef.js +92 -0
- package/dist/cjs/internal/resourceRef.js.map +1 -0
- package/dist/cjs/internal/shardManager.js +219 -235
- package/dist/cjs/internal/shardManager.js.map +1 -1
- package/dist/dts/ClusterError.d.ts +169 -0
- package/dist/dts/ClusterError.d.ts.map +1 -0
- package/dist/dts/ClusterMetrics.d.ts +50 -0
- package/dist/dts/ClusterMetrics.d.ts.map +1 -0
- package/dist/dts/ClusterSchema.d.ts +13 -0
- package/dist/dts/ClusterSchema.d.ts.map +1 -0
- package/dist/dts/DeliverAt.d.ts +27 -0
- package/dist/dts/DeliverAt.d.ts.map +1 -0
- package/dist/dts/Entity.d.ts +180 -0
- package/dist/dts/Entity.d.ts.map +1 -0
- package/dist/dts/EntityAddress.d.ts +55 -0
- package/dist/dts/EntityAddress.d.ts.map +1 -0
- package/dist/dts/EntityId.d.ts +15 -0
- package/dist/dts/EntityId.d.ts.map +1 -0
- package/dist/dts/EntityType.d.ts +15 -0
- package/dist/dts/EntityType.d.ts.map +1 -0
- package/dist/dts/Envelope.d.ts +252 -0
- package/dist/dts/Envelope.d.ts.map +1 -0
- package/dist/dts/HttpCommon.d.ts +25 -0
- package/dist/dts/HttpCommon.d.ts.map +1 -0
- package/dist/dts/HttpRunner.d.ts +76 -0
- package/dist/dts/HttpRunner.d.ts.map +1 -0
- package/dist/dts/HttpShardManager.d.ts +119 -0
- package/dist/dts/HttpShardManager.d.ts.map +1 -0
- package/dist/dts/MachineId.d.ts +20 -0
- package/dist/dts/MachineId.d.ts.map +1 -0
- package/dist/dts/Message.d.ts +91 -74
- package/dist/dts/Message.d.ts.map +1 -1
- package/dist/dts/MessageStorage.d.ts +336 -0
- package/dist/dts/MessageStorage.d.ts.map +1 -0
- package/dist/dts/Reply.d.ts +171 -0
- package/dist/dts/Reply.d.ts.map +1 -0
- package/dist/dts/Runner.d.ts +81 -0
- package/dist/dts/Runner.d.ts.map +1 -0
- package/dist/dts/RunnerAddress.d.ts +56 -0
- package/dist/dts/RunnerAddress.d.ts.map +1 -0
- package/dist/dts/RunnerHealth.d.ts +54 -0
- package/dist/dts/RunnerHealth.d.ts.map +1 -0
- package/dist/dts/RunnerServer.d.ts +44 -0
- package/dist/dts/RunnerServer.d.ts.map +1 -0
- package/dist/dts/Runners.d.ts +161 -0
- package/dist/dts/Runners.d.ts.map +1 -0
- package/dist/dts/ShardId.d.ts +5 -55
- package/dist/dts/ShardId.d.ts.map +1 -1
- package/dist/dts/ShardManager.d.ts +435 -23
- package/dist/dts/ShardManager.d.ts.map +1 -1
- package/dist/dts/ShardStorage.d.ts +200 -0
- package/dist/dts/ShardStorage.d.ts.map +1 -0
- package/dist/dts/Sharding.d.ts +64 -133
- package/dist/dts/Sharding.d.ts.map +1 -1
- package/dist/dts/ShardingConfig.d.ts +147 -44
- package/dist/dts/ShardingConfig.d.ts.map +1 -1
- package/dist/dts/ShardingRegistrationEvent.d.ts +38 -23
- package/dist/dts/ShardingRegistrationEvent.d.ts.map +1 -1
- package/dist/dts/Singleton.d.ts +13 -0
- package/dist/dts/Singleton.d.ts.map +1 -0
- package/dist/dts/SingletonAddress.d.ts +49 -0
- package/dist/dts/SingletonAddress.d.ts.map +1 -0
- package/dist/dts/Snowflake.d.ts +121 -0
- package/dist/dts/Snowflake.d.ts.map +1 -0
- package/dist/dts/SocketRunner.d.ts +22 -0
- package/dist/dts/SocketRunner.d.ts.map +1 -0
- package/dist/dts/SocketShardManager.d.ts +17 -0
- package/dist/dts/SocketShardManager.d.ts.map +1 -0
- package/dist/dts/SqlMessageStorage.d.ts +43 -0
- package/dist/dts/SqlMessageStorage.d.ts.map +1 -0
- package/dist/dts/SqlShardStorage.d.ts +38 -0
- package/dist/dts/SqlShardStorage.d.ts.map +1 -0
- package/dist/dts/SynchronizedClock.d.ts +19 -0
- package/dist/dts/SynchronizedClock.d.ts.map +1 -0
- package/dist/dts/index.d.ts +48 -24
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/entityReaper.d.ts +2 -0
- package/dist/dts/internal/entityReaper.d.ts.map +1 -0
- package/dist/dts/internal/hash.d.ts +2 -0
- package/dist/dts/internal/hash.d.ts.map +1 -0
- package/dist/dts/internal/interruptors.d.ts +2 -0
- package/dist/dts/internal/interruptors.d.ts.map +1 -0
- package/dist/dts/internal/resourceMap.d.ts +22 -0
- package/dist/dts/internal/resourceMap.d.ts.map +1 -0
- package/dist/dts/internal/resourceRef.d.ts +25 -0
- package/dist/dts/internal/resourceRef.d.ts.map +1 -0
- package/dist/dts/internal/shardManager.d.ts +1 -11
- package/dist/dts/internal/shardManager.d.ts.map +1 -1
- package/dist/esm/ClusterError.js +164 -0
- package/dist/esm/ClusterError.js.map +1 -0
- package/dist/esm/ClusterMetrics.js +54 -0
- package/dist/esm/ClusterMetrics.js.map +1 -0
- package/dist/esm/ClusterSchema.js +13 -0
- package/dist/esm/ClusterSchema.js.map +1 -0
- package/dist/esm/DeliverAt.js +22 -0
- package/dist/esm/DeliverAt.js.map +1 -0
- package/dist/esm/Entity.js +173 -0
- package/dist/esm/Entity.js.map +1 -0
- package/dist/esm/EntityAddress.js +44 -0
- package/dist/esm/EntityAddress.js.map +1 -0
- package/dist/esm/EntityId.js +10 -0
- package/dist/esm/EntityId.js.map +1 -0
- package/dist/esm/EntityType.js +10 -0
- package/dist/esm/EntityType.js.map +1 -0
- package/dist/esm/Envelope.js +154 -0
- package/dist/esm/Envelope.js.map +1 -0
- package/dist/esm/HttpCommon.js +38 -0
- package/dist/esm/HttpCommon.js.map +1 -0
- package/dist/esm/HttpRunner.js +98 -0
- package/dist/esm/HttpRunner.js.map +1 -0
- package/dist/esm/HttpShardManager.js +128 -0
- package/dist/esm/HttpShardManager.js.map +1 -0
- package/dist/esm/MachineId.js +17 -0
- package/dist/esm/MachineId.js.map +1 -0
- package/dist/esm/Message.js +88 -17
- package/dist/esm/Message.js.map +1 -1
- package/dist/esm/MessageStorage.js +345 -0
- package/dist/esm/MessageStorage.js.map +1 -0
- package/dist/esm/Reply.js +184 -0
- package/dist/esm/Reply.js.map +1 -0
- package/dist/esm/Runner.js +68 -0
- package/dist/esm/Runner.js.map +1 -0
- package/dist/esm/RunnerAddress.js +52 -0
- package/dist/esm/RunnerAddress.js.map +1 -0
- package/dist/esm/RunnerHealth.js +58 -0
- package/dist/esm/RunnerHealth.js.map +1 -0
- package/dist/esm/RunnerServer.js +116 -0
- package/dist/esm/RunnerServer.js.map +1 -0
- package/dist/esm/Runners.js +332 -0
- package/dist/esm/Runners.js.map +1 -0
- package/dist/esm/ShardId.js +5 -42
- package/dist/esm/ShardId.js.map +1 -1
- package/dist/esm/ShardManager.js +486 -7
- package/dist/esm/ShardManager.js.map +1 -1
- package/dist/esm/ShardStorage.js +129 -0
- package/dist/esm/ShardStorage.js.map +1 -0
- package/dist/esm/Sharding.js +729 -90
- package/dist/esm/Sharding.js.map +1 -1
- package/dist/esm/ShardingConfig.js +80 -17
- package/dist/esm/ShardingConfig.js.map +1 -1
- package/dist/esm/ShardingRegistrationEvent.js +19 -29
- package/dist/esm/ShardingRegistrationEvent.js.map +1 -1
- package/dist/esm/Singleton.js +15 -0
- package/dist/esm/Singleton.js.map +1 -0
- package/dist/esm/SingletonAddress.js +40 -0
- package/dist/esm/SingletonAddress.js.map +1 -0
- package/dist/esm/Snowflake.js +117 -0
- package/dist/esm/Snowflake.js.map +1 -0
- package/dist/esm/SocketRunner.js +31 -0
- package/dist/esm/SocketRunner.js.map +1 -0
- package/dist/esm/SocketShardManager.js +24 -0
- package/dist/esm/SocketShardManager.js.map +1 -0
- package/dist/esm/SqlMessageStorage.js +658 -0
- package/dist/esm/SqlMessageStorage.js.map +1 -0
- package/dist/esm/SqlShardStorage.js +218 -0
- package/dist/esm/SqlShardStorage.js.map +1 -0
- package/dist/esm/SynchronizedClock.js +57 -0
- package/dist/esm/SynchronizedClock.js.map +1 -0
- package/dist/esm/index.js +48 -24
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/entityManager.js +311 -142
- package/dist/esm/internal/entityManager.js.map +1 -1
- package/dist/esm/internal/entityReaper.js +38 -0
- package/dist/esm/internal/entityReaper.js.map +1 -0
- package/dist/esm/internal/hash.js +12 -0
- package/dist/esm/internal/hash.js.map +1 -0
- package/dist/esm/internal/interruptors.js +3 -0
- package/dist/esm/internal/interruptors.js.map +1 -0
- package/dist/esm/internal/resourceMap.js +79 -0
- package/dist/esm/internal/resourceMap.js.map +1 -0
- package/dist/esm/internal/resourceRef.js +83 -0
- package/dist/esm/internal/resourceRef.js.map +1 -0
- package/dist/esm/internal/shardManager.js +217 -233
- package/dist/esm/internal/shardManager.js.map +1 -1
- package/package.json +212 -154
- package/src/ClusterError.ts +193 -0
- package/src/ClusterMetrics.ts +62 -0
- package/src/ClusterSchema.ts +13 -0
- package/src/DeliverAt.ts +36 -0
- package/src/Entity.ts +438 -0
- package/src/EntityAddress.ts +55 -0
- package/src/EntityId.ts +16 -0
- package/src/EntityType.ts +16 -0
- package/src/Envelope.ts +352 -0
- package/src/HttpCommon.ts +73 -0
- package/src/HttpRunner.ts +196 -0
- package/src/HttpShardManager.ts +273 -0
- package/src/MachineId.ts +27 -0
- package/src/Message.ts +143 -92
- package/src/MessageStorage.ts +697 -0
- package/src/Reply.ts +295 -0
- package/src/Runner.ts +84 -0
- package/src/RunnerAddress.ts +61 -0
- package/src/RunnerHealth.ts +87 -0
- package/src/RunnerServer.ts +156 -0
- package/src/Runners.ts +533 -0
- package/src/ShardId.ts +10 -62
- package/src/ShardManager.ts +780 -29
- package/src/ShardStorage.ts +289 -0
- package/src/Sharding.ts +1059 -186
- package/src/ShardingConfig.ts +186 -45
- package/src/ShardingRegistrationEvent.ts +38 -39
- package/src/Singleton.ts +20 -0
- package/src/SingletonAddress.ts +47 -0
- package/src/Snowflake.ts +194 -0
- package/src/SocketRunner.ts +59 -0
- package/src/SocketShardManager.ts +48 -0
- package/src/SqlMessageStorage.ts +833 -0
- package/src/SqlShardStorage.ts +292 -0
- package/src/SynchronizedClock.ts +82 -0
- package/src/index.ts +54 -24
- package/src/internal/entityManager.ts +464 -361
- package/src/internal/entityReaper.ts +53 -0
- package/src/internal/hash.ts +11 -0
- package/src/internal/interruptors.ts +4 -0
- package/src/internal/resourceMap.ts +89 -0
- package/src/internal/resourceRef.ts +88 -0
- package/src/internal/shardManager.ts +273 -546
- package/AtLeastOnce/package.json +0 -6
- package/AtLeastOnceStorage/package.json +0 -6
- package/Broadcaster/package.json +0 -6
- package/ManagerConfig/package.json +0 -6
- package/MessageState/package.json +0 -6
- package/Messenger/package.json +0 -6
- package/Pod/package.json +0 -6
- package/PodAddress/package.json +0 -6
- package/Pods/package.json +0 -6
- package/PodsHealth/package.json +0 -6
- package/PoisonPill/package.json +0 -6
- package/RecipientAddress/package.json +0 -6
- package/RecipientBehaviour/package.json +0 -6
- package/RecipientBehaviourContext/package.json +0 -6
- package/RecipientType/package.json +0 -6
- package/Serialization/package.json +0 -6
- package/SerializedEnvelope/package.json +0 -6
- package/SerializedMessage/package.json +0 -6
- package/ShardManagerClient/package.json +0 -6
- package/ShardingEvent/package.json +0 -6
- package/ShardingException/package.json +0 -6
- package/Storage/package.json +0 -6
- package/dist/cjs/AtLeastOnce.js.map +0 -1
- package/dist/cjs/AtLeastOnceStorage.js.map +0 -1
- package/dist/cjs/Broadcaster.js +0 -6
- package/dist/cjs/Broadcaster.js.map +0 -1
- package/dist/cjs/ManagerConfig.js.map +0 -1
- package/dist/cjs/MessageState.js +0 -55
- package/dist/cjs/MessageState.js.map +0 -1
- package/dist/cjs/Messenger.js +0 -6
- package/dist/cjs/Messenger.js.map +0 -1
- package/dist/cjs/Pod.js +0 -78
- package/dist/cjs/Pod.js.map +0 -1
- package/dist/cjs/PodAddress.js +0 -77
- package/dist/cjs/PodAddress.js.map +0 -1
- package/dist/cjs/Pods.js.map +0 -1
- package/dist/cjs/PodsHealth.js +0 -41
- package/dist/cjs/PodsHealth.js.map +0 -1
- package/dist/cjs/PoisonPill.js +0 -78
- package/dist/cjs/PoisonPill.js.map +0 -1
- package/dist/cjs/RecipientAddress.js +0 -79
- package/dist/cjs/RecipientAddress.js.map +0 -1
- package/dist/cjs/RecipientBehaviour.js +0 -38
- package/dist/cjs/RecipientBehaviour.js.map +0 -1
- package/dist/cjs/RecipientBehaviourContext.js +0 -64
- package/dist/cjs/RecipientBehaviourContext.js.map +0 -1
- package/dist/cjs/RecipientType.js +0 -123
- package/dist/cjs/RecipientType.js.map +0 -1
- package/dist/cjs/Serialization.js +0 -32
- package/dist/cjs/Serialization.js.map +0 -1
- package/dist/cjs/SerializedEnvelope.js +0 -87
- package/dist/cjs/SerializedEnvelope.js.map +0 -1
- package/dist/cjs/SerializedMessage.js +0 -64
- package/dist/cjs/SerializedMessage.js.map +0 -1
- package/dist/cjs/ShardManagerClient.js.map +0 -1
- package/dist/cjs/ShardingEvent.js +0 -72
- package/dist/cjs/ShardingEvent.js.map +0 -1
- package/dist/cjs/ShardingException.js +0 -107
- package/dist/cjs/ShardingException.js.map +0 -1
- package/dist/cjs/Storage.js +0 -40
- package/dist/cjs/Storage.js.map +0 -1
- package/dist/cjs/internal/atLeastOnce.js +0 -35
- package/dist/cjs/internal/atLeastOnce.js.map +0 -1
- package/dist/cjs/internal/atLeastOnceStorage.js +0 -163
- package/dist/cjs/internal/atLeastOnceStorage.js.map +0 -1
- package/dist/cjs/internal/entityState.js +0 -47
- package/dist/cjs/internal/entityState.js.map +0 -1
- package/dist/cjs/internal/managerConfig.js +0 -46
- package/dist/cjs/internal/managerConfig.js.map +0 -1
- package/dist/cjs/internal/message.js +0 -48
- package/dist/cjs/internal/message.js.map +0 -1
- package/dist/cjs/internal/messageState.js +0 -79
- package/dist/cjs/internal/messageState.js.map +0 -1
- package/dist/cjs/internal/podWithMetadata.js +0 -54
- package/dist/cjs/internal/podWithMetadata.js.map +0 -1
- package/dist/cjs/internal/pods.js +0 -35
- package/dist/cjs/internal/pods.js.map +0 -1
- package/dist/cjs/internal/podsHealth.js +0 -40
- package/dist/cjs/internal/podsHealth.js.map +0 -1
- package/dist/cjs/internal/recipientBehaviour.js +0 -52
- package/dist/cjs/internal/recipientBehaviour.js.map +0 -1
- package/dist/cjs/internal/recipientBehaviourContext.js +0 -36
- package/dist/cjs/internal/recipientBehaviourContext.js.map +0 -1
- package/dist/cjs/internal/serialization.js +0 -48
- package/dist/cjs/internal/serialization.js.map +0 -1
- package/dist/cjs/internal/shardManagerClient.js +0 -48
- package/dist/cjs/internal/shardManagerClient.js.map +0 -1
- package/dist/cjs/internal/shardManagerState.js +0 -44
- package/dist/cjs/internal/shardManagerState.js.map +0 -1
- package/dist/cjs/internal/sharding.js +0 -306
- package/dist/cjs/internal/sharding.js.map +0 -1
- package/dist/cjs/internal/shardingConfig.js +0 -56
- package/dist/cjs/internal/shardingConfig.js.map +0 -1
- package/dist/cjs/internal/storage.js +0 -52
- package/dist/cjs/internal/storage.js.map +0 -1
- package/dist/cjs/internal/utils.js +0 -69
- package/dist/cjs/internal/utils.js.map +0 -1
- package/dist/dts/AtLeastOnce.d.ts +0 -20
- package/dist/dts/AtLeastOnce.d.ts.map +0 -1
- package/dist/dts/AtLeastOnceStorage.d.ts +0 -75
- package/dist/dts/AtLeastOnceStorage.d.ts.map +0 -1
- package/dist/dts/Broadcaster.d.ts +0 -32
- package/dist/dts/Broadcaster.d.ts.map +0 -1
- package/dist/dts/ManagerConfig.d.ts +0 -61
- package/dist/dts/ManagerConfig.d.ts.map +0 -1
- package/dist/dts/MessageState.d.ts +0 -107
- package/dist/dts/MessageState.d.ts.map +0 -1
- package/dist/dts/Messenger.d.ts +0 -32
- package/dist/dts/Messenger.d.ts.map +0 -1
- package/dist/dts/Pod.d.ts +0 -81
- package/dist/dts/Pod.d.ts.map +0 -1
- package/dist/dts/PodAddress.d.ts +0 -80
- package/dist/dts/PodAddress.d.ts.map +0 -1
- package/dist/dts/Pods.d.ts +0 -78
- package/dist/dts/Pods.d.ts.map +0 -1
- package/dist/dts/PodsHealth.d.ts +0 -66
- package/dist/dts/PodsHealth.d.ts.map +0 -1
- package/dist/dts/PoisonPill.d.ts +0 -78
- package/dist/dts/PoisonPill.d.ts.map +0 -1
- package/dist/dts/RecipientAddress.d.ts +0 -57
- package/dist/dts/RecipientAddress.d.ts.map +0 -1
- package/dist/dts/RecipientBehaviour.d.ts +0 -72
- package/dist/dts/RecipientBehaviour.d.ts.map +0 -1
- package/dist/dts/RecipientBehaviourContext.d.ts +0 -83
- package/dist/dts/RecipientBehaviourContext.d.ts.map +0 -1
- package/dist/dts/RecipientType.d.ts +0 -93
- package/dist/dts/RecipientType.d.ts.map +0 -1
- package/dist/dts/Serialization.d.ts +0 -58
- package/dist/dts/Serialization.d.ts.map +0 -1
- package/dist/dts/SerializedEnvelope.d.ts +0 -86
- package/dist/dts/SerializedEnvelope.d.ts.map +0 -1
- package/dist/dts/SerializedMessage.d.ts +0 -66
- package/dist/dts/SerializedMessage.d.ts.map +0 -1
- package/dist/dts/ShardManagerClient.d.ts +0 -50
- package/dist/dts/ShardManagerClient.d.ts.map +0 -1
- package/dist/dts/ShardingEvent.d.ts +0 -90
- package/dist/dts/ShardingEvent.d.ts.map +0 -1
- package/dist/dts/ShardingException.d.ts +0 -125
- package/dist/dts/ShardingException.d.ts.map +0 -1
- package/dist/dts/Storage.d.ts +0 -78
- package/dist/dts/Storage.d.ts.map +0 -1
- package/dist/dts/internal/atLeastOnce.d.ts +0 -2
- package/dist/dts/internal/atLeastOnce.d.ts.map +0 -1
- package/dist/dts/internal/atLeastOnceStorage.d.ts +0 -2
- package/dist/dts/internal/atLeastOnceStorage.d.ts.map +0 -1
- package/dist/dts/internal/entityState.d.ts +0 -21
- package/dist/dts/internal/entityState.d.ts.map +0 -1
- package/dist/dts/internal/managerConfig.d.ts +0 -2
- package/dist/dts/internal/managerConfig.d.ts.map +0 -1
- package/dist/dts/internal/message.d.ts +0 -9
- package/dist/dts/internal/message.d.ts.map +0 -1
- package/dist/dts/internal/messageState.d.ts +0 -2
- package/dist/dts/internal/messageState.d.ts.map +0 -1
- package/dist/dts/internal/podWithMetadata.d.ts +0 -2
- package/dist/dts/internal/podWithMetadata.d.ts.map +0 -1
- package/dist/dts/internal/pods.d.ts +0 -2
- package/dist/dts/internal/pods.d.ts.map +0 -1
- package/dist/dts/internal/podsHealth.d.ts +0 -2
- package/dist/dts/internal/podsHealth.d.ts.map +0 -1
- package/dist/dts/internal/recipientBehaviour.d.ts +0 -2
- package/dist/dts/internal/recipientBehaviour.d.ts.map +0 -1
- package/dist/dts/internal/recipientBehaviourContext.d.ts +0 -2
- package/dist/dts/internal/recipientBehaviourContext.d.ts.map +0 -1
- package/dist/dts/internal/serialization.d.ts +0 -2
- package/dist/dts/internal/serialization.d.ts.map +0 -1
- package/dist/dts/internal/shardManagerClient.d.ts +0 -2
- package/dist/dts/internal/shardManagerClient.d.ts.map +0 -1
- package/dist/dts/internal/shardManagerState.d.ts +0 -26
- package/dist/dts/internal/shardManagerState.d.ts.map +0 -1
- package/dist/dts/internal/sharding.d.ts +0 -2
- package/dist/dts/internal/sharding.d.ts.map +0 -1
- package/dist/dts/internal/shardingConfig.d.ts +0 -2
- package/dist/dts/internal/shardingConfig.d.ts.map +0 -1
- package/dist/dts/internal/storage.d.ts +0 -2
- package/dist/dts/internal/storage.d.ts.map +0 -1
- package/dist/dts/internal/utils.d.ts +0 -2
- package/dist/dts/internal/utils.d.ts.map +0 -1
- package/dist/esm/AtLeastOnce.js +0 -12
- package/dist/esm/AtLeastOnce.js.map +0 -1
- package/dist/esm/AtLeastOnceStorage.js +0 -17
- package/dist/esm/AtLeastOnceStorage.js.map +0 -1
- package/dist/esm/Broadcaster.js +0 -2
- package/dist/esm/Broadcaster.js.map +0 -1
- package/dist/esm/ManagerConfig.js +0 -26
- package/dist/esm/ManagerConfig.js.map +0 -1
- package/dist/esm/MessageState.js +0 -47
- package/dist/esm/MessageState.js.map +0 -1
- package/dist/esm/Messenger.js +0 -2
- package/dist/esm/Messenger.js.map +0 -1
- package/dist/esm/Pod.js +0 -65
- package/dist/esm/Pod.js.map +0 -1
- package/dist/esm/PodAddress.js +0 -64
- package/dist/esm/PodAddress.js.map +0 -1
- package/dist/esm/Pods.js +0 -27
- package/dist/esm/Pods.js.map +0 -1
- package/dist/esm/PodsHealth.js +0 -33
- package/dist/esm/PodsHealth.js.map +0 -1
- package/dist/esm/PoisonPill.js +0 -65
- package/dist/esm/PoisonPill.js.map +0 -1
- package/dist/esm/RecipientAddress.js +0 -67
- package/dist/esm/RecipientAddress.js.map +0 -1
- package/dist/esm/RecipientBehaviour.js +0 -30
- package/dist/esm/RecipientBehaviour.js.map +0 -1
- package/dist/esm/RecipientBehaviourContext.js +0 -56
- package/dist/esm/RecipientBehaviourContext.js.map +0 -1
- package/dist/esm/RecipientType.js +0 -108
- package/dist/esm/RecipientType.js.map +0 -1
- package/dist/esm/Serialization.js +0 -24
- package/dist/esm/Serialization.js.map +0 -1
- package/dist/esm/SerializedEnvelope.js +0 -74
- package/dist/esm/SerializedEnvelope.js.map +0 -1
- package/dist/esm/SerializedMessage.js +0 -51
- package/dist/esm/SerializedMessage.js.map +0 -1
- package/dist/esm/ShardManagerClient.js +0 -22
- package/dist/esm/ShardManagerClient.js.map +0 -1
- package/dist/esm/ShardingEvent.js +0 -62
- package/dist/esm/ShardingEvent.js.map +0 -1
- package/dist/esm/ShardingException.js +0 -91
- package/dist/esm/ShardingException.js.map +0 -1
- package/dist/esm/Storage.js +0 -32
- package/dist/esm/Storage.js.map +0 -1
- package/dist/esm/internal/atLeastOnce.js +0 -26
- package/dist/esm/internal/atLeastOnce.js.map +0 -1
- package/dist/esm/internal/atLeastOnceStorage.js +0 -154
- package/dist/esm/internal/atLeastOnceStorage.js.map +0 -1
- package/dist/esm/internal/entityState.js +0 -35
- package/dist/esm/internal/entityState.js.map +0 -1
- package/dist/esm/internal/managerConfig.js +0 -38
- package/dist/esm/internal/managerConfig.js.map +0 -1
- package/dist/esm/internal/message.js +0 -35
- package/dist/esm/internal/message.js.map +0 -1
- package/dist/esm/internal/messageState.js +0 -66
- package/dist/esm/internal/messageState.js.map +0 -1
- package/dist/esm/internal/podWithMetadata.js +0 -41
- package/dist/esm/internal/podWithMetadata.js.map +0 -1
- package/dist/esm/internal/pods.js +0 -25
- package/dist/esm/internal/pods.js.map +0 -1
- package/dist/esm/internal/podsHealth.js +0 -30
- package/dist/esm/internal/podsHealth.js.map +0 -1
- package/dist/esm/internal/recipientBehaviour.js +0 -42
- package/dist/esm/internal/recipientBehaviour.js.map +0 -1
- package/dist/esm/internal/recipientBehaviourContext.js +0 -26
- package/dist/esm/internal/recipientBehaviourContext.js.map +0 -1
- package/dist/esm/internal/serialization.js +0 -38
- package/dist/esm/internal/serialization.js.map +0 -1
- package/dist/esm/internal/shardManagerClient.js +0 -38
- package/dist/esm/internal/shardManagerClient.js.map +0 -1
- package/dist/esm/internal/shardManagerState.js +0 -36
- package/dist/esm/internal/shardManagerState.js.map +0 -1
- package/dist/esm/internal/sharding.js +0 -288
- package/dist/esm/internal/sharding.js.map +0 -1
- package/dist/esm/internal/shardingConfig.js +0 -47
- package/dist/esm/internal/shardingConfig.js.map +0 -1
- package/dist/esm/internal/storage.js +0 -42
- package/dist/esm/internal/storage.js.map +0 -1
- package/dist/esm/internal/utils.js +0 -56
- package/dist/esm/internal/utils.js.map +0 -1
- package/src/AtLeastOnce.ts +0 -28
- package/src/AtLeastOnceStorage.ts +0 -96
- package/src/Broadcaster.ts +0 -48
- package/src/ManagerConfig.ts +0 -67
- package/src/MessageState.ts +0 -126
- package/src/Messenger.ts +0 -40
- package/src/Pod.ts +0 -95
- package/src/PodAddress.ts +0 -94
- package/src/Pods.ts +0 -100
- package/src/PodsHealth.ts +0 -74
- package/src/PoisonPill.ts +0 -105
- package/src/RecipientAddress.ts +0 -72
- package/src/RecipientBehaviour.ts +0 -108
- package/src/RecipientBehaviourContext.ts +0 -101
- package/src/RecipientType.ts +0 -134
- package/src/Serialization.ts +0 -72
- package/src/SerializedEnvelope.ts +0 -108
- package/src/SerializedMessage.ts +0 -82
- package/src/ShardManagerClient.ts +0 -57
- package/src/ShardingEvent.ts +0 -121
- package/src/ShardingException.ts +0 -151
- package/src/Storage.ts +0 -92
- package/src/internal/atLeastOnce.ts +0 -59
- package/src/internal/atLeastOnceStorage.ts +0 -218
- package/src/internal/entityState.ts +0 -64
- package/src/internal/managerConfig.ts +0 -84
- package/src/internal/message.ts +0 -63
- package/src/internal/messageState.ts +0 -98
- package/src/internal/podWithMetadata.ts +0 -72
- package/src/internal/pods.ts +0 -29
- package/src/internal/podsHealth.ts +0 -39
- package/src/internal/recipientBehaviour.ts +0 -133
- package/src/internal/recipientBehaviourContext.ts +0 -70
- package/src/internal/serialization.ts +0 -63
- package/src/internal/shardManagerClient.ts +0 -49
- package/src/internal/shardManagerState.ts +0 -80
- package/src/internal/sharding.ts +0 -789
- package/src/internal/shardingConfig.ts +0 -97
- package/src/internal/storage.ts +0 -60
- package/src/internal/utils.ts +0 -54
package/src/SerializedMessage.ts
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @since 1.0.0
|
3
|
-
*/
|
4
|
-
import * as Schema from "effect/Schema"
|
5
|
-
import { TypeIdSchema } from "./internal/utils.js"
|
6
|
-
|
7
|
-
/** @internal */
|
8
|
-
const SerializedMessageSymbolKey = "@effect/cluster/SerializedMessage"
|
9
|
-
|
10
|
-
/**
|
11
|
-
* @since 1.0.0
|
12
|
-
* @category symbols
|
13
|
-
*/
|
14
|
-
export const SerializedMessageTypeId: unique symbol = Symbol.for(SerializedMessageSymbolKey)
|
15
|
-
|
16
|
-
/**
|
17
|
-
* @since 1.0.0
|
18
|
-
* @category symbols
|
19
|
-
*/
|
20
|
-
export type SerializedMessageTypeId = typeof SerializedMessageTypeId
|
21
|
-
|
22
|
-
/** @internal */
|
23
|
-
const SerializedMessageTypeIdSchema = TypeIdSchema(SerializedMessageSymbolKey, SerializedMessageTypeId)
|
24
|
-
|
25
|
-
/**
|
26
|
-
* Represents a Message that has been serialized.
|
27
|
-
*
|
28
|
-
* @since 1.0.0
|
29
|
-
* @category models
|
30
|
-
*/
|
31
|
-
export class SerializedMessage extends Schema.Class<SerializedMessage>(SerializedMessageSymbolKey)({
|
32
|
-
[SerializedMessageTypeId]: Schema.propertySignature(SerializedMessageTypeIdSchema).pipe(
|
33
|
-
Schema.fromKey(SerializedMessageSymbolKey)
|
34
|
-
),
|
35
|
-
value: Schema.String
|
36
|
-
}) {}
|
37
|
-
|
38
|
-
/**
|
39
|
-
* @since 1.0.0
|
40
|
-
* @category models
|
41
|
-
*/
|
42
|
-
export namespace SerializedMessage {
|
43
|
-
/**
|
44
|
-
* @since 1.0.0
|
45
|
-
* @category models
|
46
|
-
*/
|
47
|
-
export interface Encoded extends Schema.Schema.Encoded<typeof SerializedMessage> {}
|
48
|
-
}
|
49
|
-
|
50
|
-
/**
|
51
|
-
* Construct a new `SerializedMessage` from its internal string value.
|
52
|
-
*
|
53
|
-
* @since 1.0.0
|
54
|
-
* @category constructors
|
55
|
-
*/
|
56
|
-
export function make(value: string): SerializedMessage {
|
57
|
-
return new SerializedMessage({ [SerializedMessageTypeId]: SerializedMessageTypeId, value })
|
58
|
-
}
|
59
|
-
|
60
|
-
/**
|
61
|
-
* @since 1.0.0
|
62
|
-
* @category utils
|
63
|
-
*/
|
64
|
-
export function isSerializedMessage(value: unknown): value is SerializedMessage {
|
65
|
-
return (
|
66
|
-
typeof value === "object" &&
|
67
|
-
value !== null &&
|
68
|
-
SerializedMessageTypeId in value &&
|
69
|
-
value[SerializedMessageTypeId] === SerializedMessageTypeId
|
70
|
-
)
|
71
|
-
}
|
72
|
-
|
73
|
-
/**
|
74
|
-
* This is the schema for a value.
|
75
|
-
*
|
76
|
-
* @since 1.0.0
|
77
|
-
* @category schema
|
78
|
-
*/
|
79
|
-
export const schema: Schema.Schema<
|
80
|
-
SerializedMessage,
|
81
|
-
SerializedMessage.Encoded
|
82
|
-
> = Schema.asSchema(SerializedMessage)
|
@@ -1,57 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @since 1.0.0
|
3
|
-
*/
|
4
|
-
import type * as Context from "effect/Context"
|
5
|
-
import type * as Effect from "effect/Effect"
|
6
|
-
import type * as HashMap from "effect/HashMap"
|
7
|
-
import type * as Layer from "effect/Layer"
|
8
|
-
import type * as Option from "effect/Option"
|
9
|
-
import * as internal from "./internal/shardManagerClient.js"
|
10
|
-
import type * as PodAddress from "./PodAddress.js"
|
11
|
-
import type * as ShardId from "./ShardId.js"
|
12
|
-
import type * as ShardingConfig from "./ShardingConfig.js"
|
13
|
-
|
14
|
-
/**
|
15
|
-
* @since 1.0.0
|
16
|
-
* @category symbols
|
17
|
-
*/
|
18
|
-
export const ShardManagerClientTypeId: unique symbol = internal.ShardManagerClientTypeId
|
19
|
-
|
20
|
-
/**
|
21
|
-
* @since 1.0.0
|
22
|
-
* @category models
|
23
|
-
*/
|
24
|
-
export type ShardManagerClientTypeId = typeof ShardManagerClientTypeId
|
25
|
-
|
26
|
-
/**
|
27
|
-
* ShardManagerClient provides the methods exposed by the ShardManager and called by the Pod.
|
28
|
-
*
|
29
|
-
* @since 1.0.0
|
30
|
-
* @category models
|
31
|
-
*/
|
32
|
-
export interface ShardManagerClient {
|
33
|
-
readonly [ShardManagerClientTypeId]: ShardManagerClientTypeId
|
34
|
-
readonly register: (podAddress: PodAddress.PodAddress) => Effect.Effect<void>
|
35
|
-
readonly unregister: (podAddress: PodAddress.PodAddress) => Effect.Effect<void>
|
36
|
-
readonly notifyUnhealthyPod: (podAddress: PodAddress.PodAddress) => Effect.Effect<void>
|
37
|
-
readonly getAssignments: Effect.Effect<HashMap.HashMap<ShardId.ShardId, Option.Option<PodAddress.PodAddress>>>
|
38
|
-
}
|
39
|
-
|
40
|
-
/**
|
41
|
-
* @since 1.0.0
|
42
|
-
* @category constructors
|
43
|
-
*/
|
44
|
-
export const make: (args: Omit<ShardManagerClient, typeof ShardManagerClientTypeId>) => ShardManagerClient =
|
45
|
-
internal.make
|
46
|
-
|
47
|
-
/**
|
48
|
-
* @since 1.0.0
|
49
|
-
* @category context
|
50
|
-
*/
|
51
|
-
export const ShardManagerClient: Context.Tag<ShardManagerClient, ShardManagerClient> = internal.shardManagerClientTag
|
52
|
-
|
53
|
-
/**
|
54
|
-
* @since 1.0.0
|
55
|
-
* @category layers
|
56
|
-
*/
|
57
|
-
export const local: Layer.Layer<ShardManagerClient, never, ShardingConfig.ShardingConfig> = internal.local
|
package/src/ShardingEvent.ts
DELETED
@@ -1,121 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @since 1.0.0
|
3
|
-
*/
|
4
|
-
import type * as HashSet from "effect/HashSet"
|
5
|
-
import type * as PodAddress from "./PodAddress.js"
|
6
|
-
import type * as ShardId from "./ShardId.js"
|
7
|
-
|
8
|
-
/**
|
9
|
-
* @since 1.0.0
|
10
|
-
* @category models
|
11
|
-
*/
|
12
|
-
export interface ShardsAssigned {
|
13
|
-
readonly _tag: "ShardsAssigned"
|
14
|
-
readonly pod: PodAddress.PodAddress
|
15
|
-
readonly shards: HashSet.HashSet<ShardId.ShardId>
|
16
|
-
}
|
17
|
-
|
18
|
-
/**
|
19
|
-
* Constructs the event that occurs when new shards are assigned to Pod.
|
20
|
-
*
|
21
|
-
* @since 1.0.0
|
22
|
-
* @category constructors
|
23
|
-
*/
|
24
|
-
export function ShardsAssigned(
|
25
|
-
pod: PodAddress.PodAddress,
|
26
|
-
shards: HashSet.HashSet<ShardId.ShardId>
|
27
|
-
): ShardsAssigned {
|
28
|
-
return { _tag: "ShardsAssigned", pod, shards }
|
29
|
-
}
|
30
|
-
|
31
|
-
/**
|
32
|
-
* @since 1.0.0
|
33
|
-
* @category models
|
34
|
-
*/
|
35
|
-
export interface ShardsUnassigned {
|
36
|
-
readonly _tag: "ShardsUnassigned"
|
37
|
-
readonly pod: PodAddress.PodAddress
|
38
|
-
readonly shards: HashSet.HashSet<ShardId.ShardId>
|
39
|
-
}
|
40
|
-
|
41
|
-
/**
|
42
|
-
* Constructs the event that occurs when shards are unassigned to a Pod
|
43
|
-
* @since 1.0.0
|
44
|
-
* @category constructors
|
45
|
-
*/
|
46
|
-
export function ShardsUnassigned(
|
47
|
-
pod: PodAddress.PodAddress,
|
48
|
-
shards: HashSet.HashSet<ShardId.ShardId>
|
49
|
-
): ShardsUnassigned {
|
50
|
-
return { _tag: "ShardsUnassigned", pod, shards }
|
51
|
-
}
|
52
|
-
|
53
|
-
/**
|
54
|
-
* @since 1.0.0
|
55
|
-
* @category models
|
56
|
-
*/
|
57
|
-
export interface PodHealthChecked {
|
58
|
-
readonly _tag: "PodHealthChecked"
|
59
|
-
readonly pod: PodAddress.PodAddress
|
60
|
-
}
|
61
|
-
|
62
|
-
/**
|
63
|
-
* Constructs the event that occurs when the health of a Pod has been checked
|
64
|
-
*
|
65
|
-
* @since 1.0.0
|
66
|
-
* @category constructors
|
67
|
-
*/
|
68
|
-
export function PodHealthChecked(pod: PodAddress.PodAddress): PodHealthChecked {
|
69
|
-
return { _tag: "PodHealthChecked", pod }
|
70
|
-
}
|
71
|
-
|
72
|
-
/**
|
73
|
-
* @since 1.0.0
|
74
|
-
* @category models
|
75
|
-
*/
|
76
|
-
export interface PodRegistered {
|
77
|
-
readonly _tag: "PodRegistered"
|
78
|
-
readonly pod: PodAddress.PodAddress
|
79
|
-
}
|
80
|
-
|
81
|
-
/**
|
82
|
-
* Constructs the event that occurs when a new Pod has registered
|
83
|
-
*
|
84
|
-
* @since 1.0.0
|
85
|
-
* @category constructors
|
86
|
-
*/
|
87
|
-
export function PodRegistered(pod: PodAddress.PodAddress): PodRegistered {
|
88
|
-
return { _tag: "PodRegistered", pod }
|
89
|
-
}
|
90
|
-
|
91
|
-
/**
|
92
|
-
* @since 1.0.0
|
93
|
-
* @category models
|
94
|
-
*/
|
95
|
-
export interface PodUnregistered {
|
96
|
-
readonly _tag: "PodUnregistered"
|
97
|
-
readonly pod: PodAddress.PodAddress
|
98
|
-
}
|
99
|
-
|
100
|
-
/**
|
101
|
-
* Constructs the event that occurs when a pod has unregistered
|
102
|
-
*
|
103
|
-
* @since 1.0.0
|
104
|
-
* @category constructors
|
105
|
-
*/
|
106
|
-
export function PodUnregistered(pod: PodAddress.PodAddress): PodUnregistered {
|
107
|
-
return { _tag: "PodUnregistered", pod }
|
108
|
-
}
|
109
|
-
|
110
|
-
/**
|
111
|
-
* This are the events that may occur over the ShardManager during its lifetime.
|
112
|
-
*
|
113
|
-
* @since 1.0.0
|
114
|
-
* @category models
|
115
|
-
*/
|
116
|
-
export type ShardingEvent =
|
117
|
-
| ShardsAssigned
|
118
|
-
| ShardsUnassigned
|
119
|
-
| PodHealthChecked
|
120
|
-
| PodRegistered
|
121
|
-
| PodUnregistered
|
package/src/ShardingException.ts
DELETED
@@ -1,151 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @since 1.0.0
|
3
|
-
*/
|
4
|
-
import * as Schema from "effect/Schema"
|
5
|
-
import * as PodAddress from "./PodAddress.js"
|
6
|
-
import * as RecipientAddress from "./RecipientAddress.js"
|
7
|
-
|
8
|
-
/**
|
9
|
-
* @since 1.0.0
|
10
|
-
* @category models
|
11
|
-
*/
|
12
|
-
export class EntityNotManagedByThisPodException extends Schema.TaggedError<EntityNotManagedByThisPodException>()(
|
13
|
-
"@effect/cluster/EntityNotManagedByThisPodException",
|
14
|
-
{
|
15
|
-
recipientAddress: RecipientAddress.RecipientAddress
|
16
|
-
}
|
17
|
-
) {
|
18
|
-
}
|
19
|
-
|
20
|
-
/**
|
21
|
-
* @since 1.0.0
|
22
|
-
* @category utils
|
23
|
-
*/
|
24
|
-
export const isEntityNotManagedByThisPodException = Schema.is(EntityNotManagedByThisPodException)
|
25
|
-
|
26
|
-
/**
|
27
|
-
* @since 1.0.0
|
28
|
-
* @category models
|
29
|
-
*/
|
30
|
-
export class EntityTypeNotRegisteredException extends Schema.TaggedError<EntityTypeNotRegisteredException>()(
|
31
|
-
"@effect/cluster/EntityTypeNotRegisteredException",
|
32
|
-
{
|
33
|
-
entityType: Schema.String,
|
34
|
-
podAddress: PodAddress.schema
|
35
|
-
}
|
36
|
-
) {
|
37
|
-
}
|
38
|
-
|
39
|
-
/**
|
40
|
-
* @since 1.0.0
|
41
|
-
* @category utils
|
42
|
-
*/
|
43
|
-
export const isEntityTypeNotRegisteredException = Schema.is(EntityTypeNotRegisteredException)
|
44
|
-
|
45
|
-
/**
|
46
|
-
* @since 1.0.0
|
47
|
-
* @category models
|
48
|
-
*/
|
49
|
-
export class NoResultInProcessedMessageStateException
|
50
|
-
extends Schema.TaggedError<NoResultInProcessedMessageStateException>()(
|
51
|
-
"@effect/cluster/NoResultInProcessedMessageStateException",
|
52
|
-
{}
|
53
|
-
)
|
54
|
-
{
|
55
|
-
}
|
56
|
-
|
57
|
-
/**
|
58
|
-
* @since 1.0.0
|
59
|
-
* @category utils
|
60
|
-
*/
|
61
|
-
export const isNoResultInProcessedMessageStateException = Schema.is(NoResultInProcessedMessageStateException)
|
62
|
-
|
63
|
-
/**
|
64
|
-
* @since 1.0.0
|
65
|
-
* @category models
|
66
|
-
*/
|
67
|
-
export class PodNoLongerRegisteredException extends Schema.TaggedError<PodNoLongerRegisteredException>()(
|
68
|
-
"@effect/cluster/PodNoLongerRegisteredException",
|
69
|
-
{
|
70
|
-
podAddress: PodAddress.schema
|
71
|
-
}
|
72
|
-
) {
|
73
|
-
}
|
74
|
-
|
75
|
-
/**
|
76
|
-
* @since 1.0.0
|
77
|
-
* @category utils
|
78
|
-
*/
|
79
|
-
export const isPodNoLongerRegisteredException = Schema.is(PodNoLongerRegisteredException)
|
80
|
-
|
81
|
-
/**
|
82
|
-
* @since 1.0.0
|
83
|
-
* @category models
|
84
|
-
*/
|
85
|
-
export class PodUnavailableException extends Schema.TaggedError<PodUnavailableException>()(
|
86
|
-
"@effect/cluster/PodUnavailableException",
|
87
|
-
{
|
88
|
-
podAddress: PodAddress.schema
|
89
|
-
}
|
90
|
-
) {
|
91
|
-
}
|
92
|
-
|
93
|
-
/**
|
94
|
-
* @since 1.0.0
|
95
|
-
* @category utils
|
96
|
-
*/
|
97
|
-
export const isPodUnavailableException = Schema.is(PodUnavailableException)
|
98
|
-
|
99
|
-
/**
|
100
|
-
* @since 1.0.0
|
101
|
-
* @category models
|
102
|
-
*/
|
103
|
-
export class SerializationException extends Schema.TaggedError<SerializationException>()(
|
104
|
-
"@effect/cluster/SerializationException",
|
105
|
-
{}
|
106
|
-
) {
|
107
|
-
}
|
108
|
-
|
109
|
-
/**
|
110
|
-
* @since 1.0.0
|
111
|
-
* @category utils
|
112
|
-
*/
|
113
|
-
export const isSerializationException = Schema.is(SerializationException)
|
114
|
-
|
115
|
-
/**
|
116
|
-
* @since 1.0.0
|
117
|
-
* @category models
|
118
|
-
*/
|
119
|
-
export class ExceptionWhileOfferingMessageException
|
120
|
-
extends Schema.TaggedError<ExceptionWhileOfferingMessageException>()(
|
121
|
-
"@effect/cluster/ExceptionWhileOfferingMessageException",
|
122
|
-
{}
|
123
|
-
)
|
124
|
-
{
|
125
|
-
}
|
126
|
-
|
127
|
-
/**
|
128
|
-
* @since 1.0.0
|
129
|
-
* @category utils
|
130
|
-
*/
|
131
|
-
export const isExceptionWhileOfferingMessageException = Schema.is(ExceptionWhileOfferingMessageException)
|
132
|
-
|
133
|
-
/**
|
134
|
-
* @since 1.0.0
|
135
|
-
* @category schema
|
136
|
-
*/
|
137
|
-
export const schema = Schema.Union(
|
138
|
-
SerializationException,
|
139
|
-
EntityNotManagedByThisPodException,
|
140
|
-
EntityTypeNotRegisteredException,
|
141
|
-
PodNoLongerRegisteredException,
|
142
|
-
PodUnavailableException,
|
143
|
-
NoResultInProcessedMessageStateException,
|
144
|
-
ExceptionWhileOfferingMessageException
|
145
|
-
)
|
146
|
-
|
147
|
-
/**
|
148
|
-
* @since 1.0.0
|
149
|
-
* @category models
|
150
|
-
*/
|
151
|
-
export type ShardingException = Schema.Schema.Type<typeof schema>
|
package/src/Storage.ts
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @since 1.0.0
|
3
|
-
*/
|
4
|
-
import type * as Context from "effect/Context"
|
5
|
-
import type * as Effect from "effect/Effect"
|
6
|
-
import type * as HashMap from "effect/HashMap"
|
7
|
-
import type * as Layer from "effect/Layer"
|
8
|
-
import type * as Option from "effect/Option"
|
9
|
-
import type * as Stream from "effect/Stream"
|
10
|
-
import * as internal from "./internal/storage.js"
|
11
|
-
import type * as Pod from "./Pod.js"
|
12
|
-
import type * as PodAddress from "./PodAddress.js"
|
13
|
-
import type * as ShardId from "./ShardId.js"
|
14
|
-
|
15
|
-
/**
|
16
|
-
* @since 1.0.0
|
17
|
-
* @category symbols
|
18
|
-
*/
|
19
|
-
export const StorageTypeId: unique symbol = internal.StorageTypeId
|
20
|
-
|
21
|
-
/**
|
22
|
-
* @since 1.0.0
|
23
|
-
* @category symbols
|
24
|
-
*/
|
25
|
-
export type StorageTypeId = typeof StorageTypeId
|
26
|
-
|
27
|
-
/**
|
28
|
-
* The storage Service is responsible of persisting assignments and registered pods.
|
29
|
-
* The storage is expected to be shared among all pods, so it works also as communication of assignments between Pods.
|
30
|
-
*
|
31
|
-
* @since 1.0.0
|
32
|
-
* @category models
|
33
|
-
*/
|
34
|
-
export interface Storage {
|
35
|
-
readonly [StorageTypeId]: StorageTypeId
|
36
|
-
|
37
|
-
/**
|
38
|
-
* Get the current state of shard assignments to pods
|
39
|
-
*/
|
40
|
-
readonly getAssignments: Effect.Effect<HashMap.HashMap<ShardId.ShardId, Option.Option<PodAddress.PodAddress>>>
|
41
|
-
|
42
|
-
/**
|
43
|
-
* Save the current state of shard assignments to pods
|
44
|
-
*/
|
45
|
-
readonly saveAssignments: (
|
46
|
-
assignments: HashMap.HashMap<ShardId.ShardId, Option.Option<PodAddress.PodAddress>>
|
47
|
-
) => Effect.Effect<void>
|
48
|
-
|
49
|
-
/**
|
50
|
-
* A stream that will emit the state of shard assignments whenever it changes
|
51
|
-
*/
|
52
|
-
readonly assignmentsStream: Stream.Stream<HashMap.HashMap<ShardId.ShardId, Option.Option<PodAddress.PodAddress>>>
|
53
|
-
|
54
|
-
/**
|
55
|
-
* Get the list of existing pods
|
56
|
-
*/
|
57
|
-
readonly getPods: Effect.Effect<HashMap.HashMap<PodAddress.PodAddress, Pod.Pod>>
|
58
|
-
|
59
|
-
/**
|
60
|
-
* Save the list of existing pods
|
61
|
-
*/
|
62
|
-
readonly savePods: (pods: HashMap.HashMap<PodAddress.PodAddress, Pod.Pod>) => Effect.Effect<void>
|
63
|
-
}
|
64
|
-
|
65
|
-
/**
|
66
|
-
* @since 1.0.0
|
67
|
-
* @category constructors
|
68
|
-
*/
|
69
|
-
export const make: (args: Omit<Storage, typeof StorageTypeId>) => Storage = internal.make
|
70
|
-
|
71
|
-
/**
|
72
|
-
* @since 1.0.0
|
73
|
-
* @category context
|
74
|
-
*/
|
75
|
-
export const Storage: Context.Tag<Storage, Storage> = internal.storageTag
|
76
|
-
|
77
|
-
/**
|
78
|
-
* A layer that stores data in-memory.
|
79
|
-
* This is useful for testing with a single pod only.
|
80
|
-
*
|
81
|
-
* @since 1.0.0
|
82
|
-
* @category layers
|
83
|
-
*/
|
84
|
-
export const memory: Layer.Layer<Storage> = internal.memory
|
85
|
-
|
86
|
-
/**
|
87
|
-
* A layer that does nothing, useful for testing.
|
88
|
-
*
|
89
|
-
* @since 1.0.0
|
90
|
-
* @category layers
|
91
|
-
*/
|
92
|
-
export const noop: Layer.Layer<Storage> = internal.noop
|
@@ -1,59 +0,0 @@
|
|
1
|
-
import type * as Duration from "effect/Duration"
|
2
|
-
import * as Effect from "effect/Effect"
|
3
|
-
import { pipe } from "effect/Function"
|
4
|
-
import type * as Scope from "effect/Scope"
|
5
|
-
import * as Stream from "effect/Stream"
|
6
|
-
import * as AtLeastOnceStorage from "../AtLeastOnceStorage.js"
|
7
|
-
import type * as Message from "../Message.js"
|
8
|
-
import * as MessageState from "../MessageState.js"
|
9
|
-
import type * as RecipientBehaviour from "../RecipientBehaviour.js"
|
10
|
-
import * as RecipientBehaviourContext from "../RecipientBehaviourContext.js"
|
11
|
-
import * as Sharding from "../Sharding.js"
|
12
|
-
|
13
|
-
/** @internal */
|
14
|
-
export function runPendingMessageSweeperScoped(
|
15
|
-
interval: Duration.Duration
|
16
|
-
): Effect.Effect<void, never, AtLeastOnceStorage.AtLeastOnceStorage | Sharding.Sharding | Scope.Scope> {
|
17
|
-
return Effect.flatMap(AtLeastOnceStorage.AtLeastOnceStorage, (storage) =>
|
18
|
-
pipe(
|
19
|
-
Sharding.getAssignedShardIds,
|
20
|
-
Effect.flatMap((shardIds) =>
|
21
|
-
pipe(
|
22
|
-
storage.sweepPending(shardIds),
|
23
|
-
Stream.mapEffect((envelope) => Sharding.sendMessageToLocalEntityManagerWithoutRetries(envelope)),
|
24
|
-
Stream.runDrain
|
25
|
-
)
|
26
|
-
),
|
27
|
-
Effect.delay(interval),
|
28
|
-
Effect.catchAllCause(Effect.logError),
|
29
|
-
Effect.forever,
|
30
|
-
Effect.forkScoped,
|
31
|
-
Effect.asVoid
|
32
|
-
))
|
33
|
-
}
|
34
|
-
|
35
|
-
/** @internal */
|
36
|
-
export function atLeastOnceRecipientBehaviour<Msg extends Message.Message.Any, R>(
|
37
|
-
fa: RecipientBehaviour.RecipientBehaviour<Msg, R>
|
38
|
-
): RecipientBehaviour.RecipientBehaviour<Msg, R | AtLeastOnceStorage.AtLeastOnceStorage> {
|
39
|
-
return Effect.gen(function*() {
|
40
|
-
const storage = yield* AtLeastOnceStorage.AtLeastOnceStorage
|
41
|
-
const entityId = yield* RecipientBehaviourContext.entityId
|
42
|
-
const shardId = yield* RecipientBehaviourContext.shardId
|
43
|
-
const recipientType = yield* RecipientBehaviourContext.recipientType
|
44
|
-
const offer = yield* fa
|
45
|
-
return <A extends Msg>(message: A) =>
|
46
|
-
pipe(
|
47
|
-
storage.upsert(recipientType, shardId, entityId, message),
|
48
|
-
Effect.zipRight(
|
49
|
-
pipe(
|
50
|
-
offer(message),
|
51
|
-
Effect.tap(MessageState.match({
|
52
|
-
onAcknowledged: () => Effect.void,
|
53
|
-
onProcessed: () => storage.markAsProcessed(recipientType, shardId, entityId, message)
|
54
|
-
}))
|
55
|
-
)
|
56
|
-
)
|
57
|
-
)
|
58
|
-
})
|
59
|
-
}
|