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