@effect/cluster 0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AtLeastOnce/package.json +6 -0
- package/AtLeastOnceStorage/package.json +6 -0
- package/Broadcaster/package.json +6 -0
- package/LICENSE +21 -0
- package/ManagerConfig/package.json +6 -0
- package/Message/package.json +6 -0
- package/MessageState/package.json +6 -0
- package/Messenger/package.json +6 -0
- package/Pod/package.json +6 -0
- package/PodAddress/package.json +6 -0
- package/Pods/package.json +6 -0
- package/PodsHealth/package.json +6 -0
- package/PoisonPill/package.json +6 -0
- package/README.md +3 -0
- package/RecipientAddress/package.json +6 -0
- package/RecipientBehaviour/package.json +6 -0
- package/RecipientBehaviourContext/package.json +6 -0
- package/RecipientType/package.json +6 -0
- package/Serialization/package.json +6 -0
- package/SerializedEnvelope/package.json +6 -0
- package/SerializedMessage/package.json +6 -0
- package/ShardId/package.json +6 -0
- package/ShardManager/package.json +6 -0
- package/ShardManagerClient/package.json +6 -0
- package/Sharding/package.json +6 -0
- package/ShardingConfig/package.json +6 -0
- package/ShardingEvent/package.json +6 -0
- package/ShardingException/package.json +6 -0
- package/ShardingRegistrationEvent/package.json +6 -0
- package/Storage/package.json +6 -0
- package/dist/cjs/AtLeastOnce.js +43 -0
- package/dist/cjs/AtLeastOnce.js.map +1 -0
- package/dist/cjs/AtLeastOnceStorage.js +48 -0
- package/dist/cjs/AtLeastOnceStorage.js.map +1 -0
- package/dist/cjs/Broadcaster.js +6 -0
- package/dist/cjs/Broadcaster.js.map +1 -0
- package/dist/cjs/ManagerConfig.js +57 -0
- package/dist/cjs/ManagerConfig.js.map +1 -0
- package/dist/cjs/Message.js +64 -0
- package/dist/cjs/Message.js.map +1 -0
- package/dist/cjs/MessageState.js +78 -0
- package/dist/cjs/MessageState.js.map +1 -0
- package/dist/cjs/Messenger.js +6 -0
- package/dist/cjs/Messenger.js.map +1 -0
- package/dist/cjs/Pod.js +101 -0
- package/dist/cjs/Pod.js.map +1 -0
- package/dist/cjs/PodAddress.js +100 -0
- package/dist/cjs/PodAddress.js.map +1 -0
- package/dist/cjs/Pods.js +58 -0
- package/dist/cjs/Pods.js.map +1 -0
- package/dist/cjs/PodsHealth.js +64 -0
- package/dist/cjs/PodsHealth.js.map +1 -0
- package/dist/cjs/PoisonPill.js +101 -0
- package/dist/cjs/PoisonPill.js.map +1 -0
- package/dist/cjs/RecipientAddress.js +102 -0
- package/dist/cjs/RecipientAddress.js.map +1 -0
- package/dist/cjs/RecipientBehaviour.js +61 -0
- package/dist/cjs/RecipientBehaviour.js.map +1 -0
- package/dist/cjs/RecipientBehaviourContext.js +87 -0
- package/dist/cjs/RecipientBehaviourContext.js.map +1 -0
- package/dist/cjs/RecipientType.js +142 -0
- package/dist/cjs/RecipientType.js.map +1 -0
- package/dist/cjs/Serialization.js +55 -0
- package/dist/cjs/Serialization.js.map +1 -0
- package/dist/cjs/SerializedEnvelope.js +111 -0
- package/dist/cjs/SerializedEnvelope.js.map +1 -0
- package/dist/cjs/SerializedMessage.js +87 -0
- package/dist/cjs/SerializedMessage.js.map +1 -0
- package/dist/cjs/ShardId.js +89 -0
- package/dist/cjs/ShardId.js.map +1 -0
- package/dist/cjs/ShardManager.js +48 -0
- package/dist/cjs/ShardManager.js.map +1 -0
- package/dist/cjs/ShardManagerClient.js +53 -0
- package/dist/cjs/ShardManagerClient.js.map +1 -0
- package/dist/cjs/Sharding.js +129 -0
- package/dist/cjs/Sharding.js.map +1 -0
- package/dist/cjs/ShardingConfig.js +64 -0
- package/dist/cjs/ShardingConfig.js.map +1 -0
- package/dist/cjs/ShardingEvent.js +72 -0
- package/dist/cjs/ShardingEvent.js.map +1 -0
- package/dist/cjs/ShardingException.js +130 -0
- package/dist/cjs/ShardingException.js.map +1 -0
- package/dist/cjs/ShardingRegistrationEvent.js +44 -0
- package/dist/cjs/ShardingRegistrationEvent.js.map +1 -0
- package/dist/cjs/Storage.js +63 -0
- package/dist/cjs/Storage.js.map +1 -0
- package/dist/cjs/index.js +88 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/atLeastOnce.js +58 -0
- package/dist/cjs/internal/atLeastOnce.js.map +1 -0
- package/dist/cjs/internal/atLeastOnceStorage.js +186 -0
- package/dist/cjs/internal/atLeastOnceStorage.js.map +1 -0
- package/dist/cjs/internal/entityManager.js +191 -0
- package/dist/cjs/internal/entityManager.js.map +1 -0
- package/dist/cjs/internal/entityState.js +70 -0
- package/dist/cjs/internal/entityState.js.map +1 -0
- package/dist/cjs/internal/managerConfig.js +69 -0
- package/dist/cjs/internal/managerConfig.js.map +1 -0
- package/dist/cjs/internal/message.js +68 -0
- package/dist/cjs/internal/message.js.map +1 -0
- package/dist/cjs/internal/messageState.js +102 -0
- package/dist/cjs/internal/messageState.js.map +1 -0
- package/dist/cjs/internal/podWithMetadata.js +77 -0
- package/dist/cjs/internal/podWithMetadata.js.map +1 -0
- package/dist/cjs/internal/pods.js +58 -0
- package/dist/cjs/internal/pods.js.map +1 -0
- package/dist/cjs/internal/podsHealth.js +63 -0
- package/dist/cjs/internal/podsHealth.js.map +1 -0
- package/dist/cjs/internal/recipientBehaviour.js +75 -0
- package/dist/cjs/internal/recipientBehaviour.js.map +1 -0
- package/dist/cjs/internal/recipientBehaviourContext.js +59 -0
- package/dist/cjs/internal/recipientBehaviourContext.js.map +1 -0
- package/dist/cjs/internal/serialization.js +72 -0
- package/dist/cjs/internal/serialization.js.map +1 -0
- package/dist/cjs/internal/shardManager.js +291 -0
- package/dist/cjs/internal/shardManager.js.map +1 -0
- package/dist/cjs/internal/shardManagerClient.js +71 -0
- package/dist/cjs/internal/shardManagerClient.js.map +1 -0
- package/dist/cjs/internal/shardManagerState.js +67 -0
- package/dist/cjs/internal/shardManagerState.js.map +1 -0
- package/dist/cjs/internal/sharding.js +329 -0
- package/dist/cjs/internal/sharding.js.map +1 -0
- package/dist/cjs/internal/shardingConfig.js +79 -0
- package/dist/cjs/internal/shardingConfig.js.map +1 -0
- package/dist/cjs/internal/storage.js +75 -0
- package/dist/cjs/internal/storage.js.map +1 -0
- package/dist/cjs/internal/utils.js +92 -0
- package/dist/cjs/internal/utils.js.map +1 -0
- package/dist/dts/AtLeastOnce.d.ts +20 -0
- package/dist/dts/AtLeastOnce.d.ts.map +1 -0
- package/dist/dts/AtLeastOnceStorage.d.ts +75 -0
- package/dist/dts/AtLeastOnceStorage.d.ts.map +1 -0
- package/dist/dts/Broadcaster.d.ts +32 -0
- package/dist/dts/Broadcaster.d.ts.map +1 -0
- package/dist/dts/ManagerConfig.d.ts +61 -0
- package/dist/dts/ManagerConfig.d.ts.map +1 -0
- package/dist/dts/Message.d.ts +106 -0
- package/dist/dts/Message.d.ts.map +1 -0
- package/dist/dts/MessageState.d.ts +107 -0
- package/dist/dts/MessageState.d.ts.map +1 -0
- package/dist/dts/Messenger.d.ts +32 -0
- package/dist/dts/Messenger.d.ts.map +1 -0
- package/dist/dts/Pod.d.ts +81 -0
- package/dist/dts/Pod.d.ts.map +1 -0
- package/dist/dts/PodAddress.d.ts +80 -0
- package/dist/dts/PodAddress.d.ts.map +1 -0
- package/dist/dts/Pods.d.ts +78 -0
- package/dist/dts/Pods.d.ts.map +1 -0
- package/dist/dts/PodsHealth.d.ts +66 -0
- package/dist/dts/PodsHealth.d.ts.map +1 -0
- package/dist/dts/PoisonPill.d.ts +78 -0
- package/dist/dts/PoisonPill.d.ts.map +1 -0
- package/dist/dts/RecipientAddress.d.ts +57 -0
- package/dist/dts/RecipientAddress.d.ts.map +1 -0
- package/dist/dts/RecipientBehaviour.d.ts +72 -0
- package/dist/dts/RecipientBehaviour.d.ts.map +1 -0
- package/dist/dts/RecipientBehaviourContext.d.ts +83 -0
- package/dist/dts/RecipientBehaviourContext.d.ts.map +1 -0
- package/dist/dts/RecipientType.d.ts +96 -0
- package/dist/dts/RecipientType.d.ts.map +1 -0
- package/dist/dts/Serialization.d.ts +58 -0
- package/dist/dts/Serialization.d.ts.map +1 -0
- package/dist/dts/SerializedEnvelope.d.ts +87 -0
- package/dist/dts/SerializedEnvelope.d.ts.map +1 -0
- package/dist/dts/SerializedMessage.d.ts +66 -0
- package/dist/dts/SerializedMessage.d.ts.map +1 -0
- package/dist/dts/ShardId.d.ts +70 -0
- package/dist/dts/ShardId.d.ts.map +1 -0
- package/dist/dts/ShardManager.d.ts +44 -0
- package/dist/dts/ShardManager.d.ts.map +1 -0
- package/dist/dts/ShardManagerClient.d.ts +50 -0
- package/dist/dts/ShardManagerClient.d.ts.map +1 -0
- package/dist/dts/Sharding.d.ts +146 -0
- package/dist/dts/Sharding.d.ts.map +1 -0
- package/dist/dts/ShardingConfig.d.ts +69 -0
- package/dist/dts/ShardingConfig.d.ts.map +1 -0
- package/dist/dts/ShardingEvent.d.ts +90 -0
- package/dist/dts/ShardingEvent.d.ts.map +1 -0
- package/dist/dts/ShardingException.d.ts +125 -0
- package/dist/dts/ShardingException.d.ts.map +1 -0
- package/dist/dts/ShardingRegistrationEvent.d.ts +44 -0
- package/dist/dts/ShardingRegistrationEvent.d.ts.map +1 -0
- package/dist/dts/Storage.d.ts +78 -0
- package/dist/dts/Storage.d.ts.map +1 -0
- package/dist/dts/index.d.ts +113 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/internal/atLeastOnce.d.ts +2 -0
- package/dist/dts/internal/atLeastOnce.d.ts.map +1 -0
- package/dist/dts/internal/atLeastOnceStorage.d.ts +2 -0
- package/dist/dts/internal/atLeastOnceStorage.d.ts.map +1 -0
- package/dist/dts/internal/entityManager.d.ts +2 -0
- package/dist/dts/internal/entityManager.d.ts.map +1 -0
- package/dist/dts/internal/entityState.d.ts +21 -0
- package/dist/dts/internal/entityState.d.ts.map +1 -0
- package/dist/dts/internal/managerConfig.d.ts +2 -0
- package/dist/dts/internal/managerConfig.d.ts.map +1 -0
- package/dist/dts/internal/message.d.ts +9 -0
- package/dist/dts/internal/message.d.ts.map +1 -0
- package/dist/dts/internal/messageState.d.ts +2 -0
- package/dist/dts/internal/messageState.d.ts.map +1 -0
- package/dist/dts/internal/podWithMetadata.d.ts +2 -0
- package/dist/dts/internal/podWithMetadata.d.ts.map +1 -0
- package/dist/dts/internal/pods.d.ts +2 -0
- package/dist/dts/internal/pods.d.ts.map +1 -0
- package/dist/dts/internal/podsHealth.d.ts +2 -0
- package/dist/dts/internal/podsHealth.d.ts.map +1 -0
- package/dist/dts/internal/recipientBehaviour.d.ts +2 -0
- package/dist/dts/internal/recipientBehaviour.d.ts.map +1 -0
- package/dist/dts/internal/recipientBehaviourContext.d.ts +2 -0
- package/dist/dts/internal/recipientBehaviourContext.d.ts.map +1 -0
- package/dist/dts/internal/serialization.d.ts +2 -0
- package/dist/dts/internal/serialization.d.ts.map +1 -0
- package/dist/dts/internal/shardManager.d.ts +12 -0
- package/dist/dts/internal/shardManager.d.ts.map +1 -0
- package/dist/dts/internal/shardManagerClient.d.ts +2 -0
- package/dist/dts/internal/shardManagerClient.d.ts.map +1 -0
- package/dist/dts/internal/shardManagerState.d.ts +26 -0
- package/dist/dts/internal/shardManagerState.d.ts.map +1 -0
- package/dist/dts/internal/sharding.d.ts +2 -0
- package/dist/dts/internal/sharding.d.ts.map +1 -0
- package/dist/dts/internal/shardingConfig.d.ts +2 -0
- package/dist/dts/internal/shardingConfig.d.ts.map +1 -0
- package/dist/dts/internal/storage.d.ts +2 -0
- package/dist/dts/internal/storage.d.ts.map +1 -0
- package/dist/dts/internal/utils.d.ts +2 -0
- package/dist/dts/internal/utils.d.ts.map +1 -0
- package/dist/esm/AtLeastOnce.js +12 -0
- package/dist/esm/AtLeastOnce.js.map +1 -0
- package/dist/esm/AtLeastOnceStorage.js +17 -0
- package/dist/esm/AtLeastOnceStorage.js.map +1 -0
- package/dist/esm/Broadcaster.js +2 -0
- package/dist/esm/Broadcaster.js.map +1 -0
- package/dist/esm/ManagerConfig.js +26 -0
- package/dist/esm/ManagerConfig.js.map +1 -0
- package/dist/esm/Message.js +33 -0
- package/dist/esm/Message.js.map +1 -0
- package/dist/esm/MessageState.js +47 -0
- package/dist/esm/MessageState.js.map +1 -0
- package/dist/esm/Messenger.js +2 -0
- package/dist/esm/Messenger.js.map +1 -0
- package/dist/esm/Pod.js +65 -0
- package/dist/esm/Pod.js.map +1 -0
- package/dist/esm/PodAddress.js +64 -0
- package/dist/esm/PodAddress.js.map +1 -0
- package/dist/esm/Pods.js +27 -0
- package/dist/esm/Pods.js.map +1 -0
- package/dist/esm/PodsHealth.js +33 -0
- package/dist/esm/PodsHealth.js.map +1 -0
- package/dist/esm/PoisonPill.js +65 -0
- package/dist/esm/PoisonPill.js.map +1 -0
- package/dist/esm/RecipientAddress.js +67 -0
- package/dist/esm/RecipientAddress.js.map +1 -0
- package/dist/esm/RecipientBehaviour.js +30 -0
- package/dist/esm/RecipientBehaviour.js.map +1 -0
- package/dist/esm/RecipientBehaviourContext.js +56 -0
- package/dist/esm/RecipientBehaviourContext.js.map +1 -0
- package/dist/esm/RecipientType.js +105 -0
- package/dist/esm/RecipientType.js.map +1 -0
- package/dist/esm/Serialization.js +24 -0
- package/dist/esm/Serialization.js.map +1 -0
- package/dist/esm/SerializedEnvelope.js +75 -0
- package/dist/esm/SerializedEnvelope.js.map +1 -0
- package/dist/esm/SerializedMessage.js +51 -0
- package/dist/esm/SerializedMessage.js.map +1 -0
- package/dist/esm/ShardId.js +54 -0
- package/dist/esm/ShardId.js.map +1 -0
- package/dist/esm/ShardManager.js +17 -0
- package/dist/esm/ShardManager.js.map +1 -0
- package/dist/esm/ShardManagerClient.js +22 -0
- package/dist/esm/ShardManagerClient.js.map +1 -0
- package/dist/esm/Sharding.js +98 -0
- package/dist/esm/Sharding.js.map +1 -0
- package/dist/esm/ShardingConfig.js +33 -0
- package/dist/esm/ShardingConfig.js.map +1 -0
- package/dist/esm/ShardingEvent.js +62 -0
- package/dist/esm/ShardingEvent.js.map +1 -0
- package/dist/esm/ShardingException.js +91 -0
- package/dist/esm/ShardingException.js.map +1 -0
- package/dist/esm/ShardingRegistrationEvent.js +36 -0
- package/dist/esm/ShardingRegistrationEvent.js.map +1 -0
- package/dist/esm/Storage.js +32 -0
- package/dist/esm/Storage.js.map +1 -0
- package/dist/esm/index.js +113 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/atLeastOnce.js +26 -0
- package/dist/esm/internal/atLeastOnce.js.map +1 -0
- package/dist/esm/internal/atLeastOnceStorage.js +154 -0
- package/dist/esm/internal/atLeastOnceStorage.js.map +1 -0
- package/dist/esm/internal/entityManager.js +159 -0
- package/dist/esm/internal/entityManager.js.map +1 -0
- package/dist/esm/internal/entityState.js +35 -0
- package/dist/esm/internal/entityState.js.map +1 -0
- package/dist/esm/internal/managerConfig.js +38 -0
- package/dist/esm/internal/managerConfig.js.map +1 -0
- package/dist/esm/internal/message.js +32 -0
- package/dist/esm/internal/message.js.map +1 -0
- package/dist/esm/internal/messageState.js +66 -0
- package/dist/esm/internal/messageState.js.map +1 -0
- package/dist/esm/internal/podWithMetadata.js +41 -0
- package/dist/esm/internal/podWithMetadata.js.map +1 -0
- package/dist/esm/internal/pods.js +25 -0
- package/dist/esm/internal/pods.js.map +1 -0
- package/dist/esm/internal/podsHealth.js +30 -0
- package/dist/esm/internal/podsHealth.js.map +1 -0
- package/dist/esm/internal/recipientBehaviour.js +42 -0
- package/dist/esm/internal/recipientBehaviour.js.map +1 -0
- package/dist/esm/internal/recipientBehaviourContext.js +26 -0
- package/dist/esm/internal/recipientBehaviourContext.js.map +1 -0
- package/dist/esm/internal/serialization.js +39 -0
- package/dist/esm/internal/serialization.js.map +1 -0
- package/dist/esm/internal/shardManager.js +256 -0
- package/dist/esm/internal/shardManager.js.map +1 -0
- package/dist/esm/internal/shardManagerClient.js +38 -0
- package/dist/esm/internal/shardManagerClient.js.map +1 -0
- package/dist/esm/internal/shardManagerState.js +36 -0
- package/dist/esm/internal/shardManagerState.js.map +1 -0
- package/dist/esm/internal/sharding.js +288 -0
- package/dist/esm/internal/sharding.js.map +1 -0
- package/dist/esm/internal/shardingConfig.js +47 -0
- package/dist/esm/internal/shardingConfig.js.map +1 -0
- package/dist/esm/internal/storage.js +42 -0
- package/dist/esm/internal/storage.js.map +1 -0
- package/dist/esm/internal/utils.js +56 -0
- package/dist/esm/internal/utils.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +259 -0
- package/src/AtLeastOnce.ts +28 -0
- package/src/AtLeastOnceStorage.ts +96 -0
- package/src/Broadcaster.ts +48 -0
- package/src/ManagerConfig.ts +67 -0
- package/src/Message.ts +132 -0
- package/src/MessageState.ts +126 -0
- package/src/Messenger.ts +40 -0
- package/src/Pod.ts +95 -0
- package/src/PodAddress.ts +94 -0
- package/src/Pods.ts +100 -0
- package/src/PodsHealth.ts +74 -0
- package/src/PoisonPill.ts +105 -0
- package/src/RecipientAddress.ts +72 -0
- package/src/RecipientBehaviour.ts +108 -0
- package/src/RecipientBehaviourContext.ts +101 -0
- package/src/RecipientType.ts +134 -0
- package/src/Serialization.ts +72 -0
- package/src/SerializedEnvelope.ts +109 -0
- package/src/SerializedMessage.ts +82 -0
- package/src/ShardId.ts +79 -0
- package/src/ShardManager.ts +53 -0
- package/src/ShardManagerClient.ts +57 -0
- package/src/Sharding.ts +214 -0
- package/src/ShardingConfig.ts +76 -0
- package/src/ShardingEvent.ts +121 -0
- package/src/ShardingException.ts +151 -0
- package/src/ShardingRegistrationEvent.ts +62 -0
- package/src/Storage.ts +92 -0
- package/src/index.ts +139 -0
- package/src/internal/atLeastOnce.ts +59 -0
- package/src/internal/atLeastOnceStorage.ts +218 -0
- package/src/internal/entityManager.ts +404 -0
- package/src/internal/entityState.ts +64 -0
- package/src/internal/managerConfig.ts +84 -0
- package/src/internal/message.ts +64 -0
- package/src/internal/messageState.ts +98 -0
- package/src/internal/podWithMetadata.ts +72 -0
- package/src/internal/pods.ts +29 -0
- package/src/internal/podsHealth.ts +39 -0
- package/src/internal/recipientBehaviour.ts +133 -0
- package/src/internal/recipientBehaviourContext.ts +70 -0
- package/src/internal/serialization.ts +59 -0
- package/src/internal/shardManager.ts +593 -0
- package/src/internal/shardManagerClient.ts +49 -0
- package/src/internal/shardManagerState.ts +80 -0
- package/src/internal/sharding.ts +793 -0
- package/src/internal/shardingConfig.ts +97 -0
- package/src/internal/storage.ts +60 -0
- package/src/internal/utils.ts +54 -0
@@ -0,0 +1,75 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.fromFunctionEffect = fromFunctionEffect;
|
7
|
+
exports.fromFunctionEffectStateful = fromFunctionEffectStateful;
|
8
|
+
exports.fromInMemoryQueue = fromInMemoryQueue;
|
9
|
+
var Deferred = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Deferred"));
|
10
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
11
|
+
var _Function = /*#__PURE__*/require("effect/Function");
|
12
|
+
var HashMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/HashMap"));
|
13
|
+
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
14
|
+
var PrimaryKey = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/PrimaryKey"));
|
15
|
+
var Queue = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Queue"));
|
16
|
+
var Ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Ref"));
|
17
|
+
var MessageState = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../MessageState.js"));
|
18
|
+
var PoisonPill = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../PoisonPill.js"));
|
19
|
+
var RecipientBehaviourContext = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../RecipientBehaviourContext.js"));
|
20
|
+
function _getRequireWildcardCache(e) {
|
21
|
+
if ("function" != typeof WeakMap) return null;
|
22
|
+
var r = new WeakMap(),
|
23
|
+
t = new WeakMap();
|
24
|
+
return (_getRequireWildcardCache = function (e) {
|
25
|
+
return e ? t : r;
|
26
|
+
})(e);
|
27
|
+
}
|
28
|
+
function _interopRequireWildcard(e, r) {
|
29
|
+
if (!r && e && e.__esModule) return e;
|
30
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
31
|
+
default: e
|
32
|
+
};
|
33
|
+
var t = _getRequireWildcardCache(r);
|
34
|
+
if (t && t.has(e)) return t.get(e);
|
35
|
+
var n = {
|
36
|
+
__proto__: null
|
37
|
+
},
|
38
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
39
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
40
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
41
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
42
|
+
}
|
43
|
+
return n.default = e, t && t.set(e, n), n;
|
44
|
+
}
|
45
|
+
/** @internal */
|
46
|
+
function fromFunctionEffect(handler) {
|
47
|
+
return Effect.flatMap(RecipientBehaviourContext.entityId, entityId => (0, _Function.pipe)(Effect.context(), Effect.map(context => message => (0, _Function.pipe)(handler(entityId, message), Effect.provide(context)))));
|
48
|
+
}
|
49
|
+
/** @internal */
|
50
|
+
function fromFunctionEffectStateful(initialState, handler) {
|
51
|
+
return Effect.flatMap(RecipientBehaviourContext.entityId, entityId => (0, _Function.pipe)(initialState(entityId), Effect.flatMap(Ref.make), Effect.flatMap(stateRef => (0, _Function.pipe)(Effect.context(), Effect.map(context => message => (0, _Function.pipe)(handler(entityId, message, stateRef), Effect.provide(context)))))));
|
52
|
+
}
|
53
|
+
/** @internal */
|
54
|
+
function fromInMemoryQueue(handler) {
|
55
|
+
return Effect.gen(function* (_) {
|
56
|
+
const entityId = yield* _(RecipientBehaviourContext.entityId);
|
57
|
+
const messageStates = yield* _(Ref.make(HashMap.empty()));
|
58
|
+
function updateMessageState(message, state) {
|
59
|
+
return (0, _Function.pipe)(Ref.update(messageStates, HashMap.set(PrimaryKey.value(message), state)), Effect.as(state));
|
60
|
+
}
|
61
|
+
function getMessageState(message) {
|
62
|
+
return (0, _Function.pipe)(Ref.get(messageStates), Effect.map(HashMap.get(PrimaryKey.value(message))));
|
63
|
+
}
|
64
|
+
function reply(message, reply) {
|
65
|
+
return updateMessageState(message, MessageState.Processed(reply));
|
66
|
+
}
|
67
|
+
return yield* _((0, _Function.pipe)(Deferred.make(), Effect.flatMap(shutdownCompleted => (0, _Function.pipe)(Effect.acquireRelease(Queue.unbounded(), queue => (0, _Function.pipe)(PoisonPill.make, Effect.flatMap(msg => Queue.offer(queue, msg)), Effect.zipLeft(Deferred.await(shutdownCompleted)), Effect.uninterruptible)), Effect.tap(queue => (0, _Function.pipe)(Effect.logDebug("Behaviour started."), Effect.zipRight(handler(entityId, queue, reply)), Effect.ensuring(Deferred.succeed(shutdownCompleted, true)), Effect.zipRight(Effect.logDebug("Behaviour exited.")), Effect.annotateLogs("entityId", entityId), Effect.forkDaemon)), Effect.map(queue => message => {
|
68
|
+
return (0, _Function.pipe)(getMessageState(message), Effect.flatMap(Option.match({
|
69
|
+
onNone: () => (0, _Function.pipe)(Queue.offer(queue, message), Effect.zipRight(updateMessageState(message, MessageState.Acknowledged))),
|
70
|
+
onSome: state => Effect.succeed(state)
|
71
|
+
})));
|
72
|
+
}), Effect.annotateLogs("entityId", entityId)))));
|
73
|
+
});
|
74
|
+
}
|
75
|
+
//# sourceMappingURL=recipientBehaviour.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"recipientBehaviour.js","names":["Deferred","_interopRequireWildcard","require","Effect","_Function","HashMap","Option","PrimaryKey","Queue","Ref","MessageState","PoisonPill","RecipientBehaviourContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","fromFunctionEffect","handler","flatMap","entityId","pipe","context","map","message","provide","fromFunctionEffectStateful","initialState","make","stateRef","fromInMemoryQueue","gen","_","messageStates","empty","updateMessageState","state","update","value","as","getMessageState","reply","Processed","shutdownCompleted","acquireRelease","unbounded","queue","msg","offer","zipLeft","await","uninterruptible","tap","logDebug","zipRight","ensuring","succeed","annotateLogs","forkDaemon","match","onNone","Acknowledged","onSome"],"sources":["../../../src/internal/recipientBehaviour.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.forkShutdown = exports.entityId = exports.RecipientBehaviourContextTypeId = void 0;
|
7
|
+
exports.make = make;
|
8
|
+
exports.shardId = exports.recipientType = exports.recipientBehaviourContextTag = exports.recipientAddress = void 0;
|
9
|
+
var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Context"));
|
10
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
11
|
+
function _getRequireWildcardCache(e) {
|
12
|
+
if ("function" != typeof WeakMap) return null;
|
13
|
+
var r = new WeakMap(),
|
14
|
+
t = new WeakMap();
|
15
|
+
return (_getRequireWildcardCache = function (e) {
|
16
|
+
return e ? t : r;
|
17
|
+
})(e);
|
18
|
+
}
|
19
|
+
function _interopRequireWildcard(e, r) {
|
20
|
+
if (!r && e && e.__esModule) return e;
|
21
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
22
|
+
default: e
|
23
|
+
};
|
24
|
+
var t = _getRequireWildcardCache(r);
|
25
|
+
if (t && t.has(e)) return t.get(e);
|
26
|
+
var n = {
|
27
|
+
__proto__: null
|
28
|
+
},
|
29
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
30
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
31
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
32
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
33
|
+
}
|
34
|
+
return n.default = e, t && t.set(e, n), n;
|
35
|
+
}
|
36
|
+
/** @internal */
|
37
|
+
const RecipientBehaviourContextSymbolKey = "@effect/cluster/RecipientBehaviourContext";
|
38
|
+
/** @internal */
|
39
|
+
const RecipientBehaviourContextTypeId = exports.RecipientBehaviourContextTypeId = /*#__PURE__*/Symbol.for(RecipientBehaviourContextSymbolKey);
|
40
|
+
/** @internal */
|
41
|
+
const recipientBehaviourContextTag = exports.recipientBehaviourContextTag = /*#__PURE__*/Context.GenericTag(RecipientBehaviourContextSymbolKey);
|
42
|
+
/** @internal */
|
43
|
+
function make(args) {
|
44
|
+
return {
|
45
|
+
[RecipientBehaviourContextTypeId]: RecipientBehaviourContextTypeId,
|
46
|
+
...args
|
47
|
+
};
|
48
|
+
}
|
49
|
+
/** @internal */
|
50
|
+
const recipientAddress = exports.recipientAddress = /*#__PURE__*/Effect.map(recipientBehaviourContextTag, _ => _.recipientAddress);
|
51
|
+
/** @internal */
|
52
|
+
const entityId = exports.entityId = /*#__PURE__*/Effect.map(recipientAddress, _ => _.entityId);
|
53
|
+
/** @internal */
|
54
|
+
const shardId = exports.shardId = /*#__PURE__*/Effect.map(recipientBehaviourContextTag, _ => _.shardId);
|
55
|
+
/** @internal */
|
56
|
+
const recipientType = exports.recipientType = /*#__PURE__*/Effect.map(recipientBehaviourContextTag, _ => _.recipientType);
|
57
|
+
/** @internal */
|
58
|
+
const forkShutdown = exports.forkShutdown = /*#__PURE__*/Effect.flatMap(recipientBehaviourContextTag, _ => _.forkShutdown);
|
59
|
+
//# sourceMappingURL=recipientBehaviourContext.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"recipientBehaviourContext.js","names":["Context","_interopRequireWildcard","require","Effect","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","RecipientBehaviourContextSymbolKey","RecipientBehaviourContextTypeId","exports","Symbol","for","recipientBehaviourContextTag","GenericTag","make","args","recipientAddress","map","_","entityId","shardId","recipientType","forkShutdown","flatMap"],"sources":["../../../src/internal/recipientBehaviourContext.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAF,uBAAA,eAAAC,OAAA;AAAuC,SAAAE,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAOvC;AACA,MAAMW,kCAAkC,GAAG,2CAA2C;AAEtF;AACO,MAAMC,+BAA+B,GAAAC,OAAA,CAAAD,+BAAA,gBAA8DE,MAAM,CAACC,GAAG,CAClHJ,kCAAkC,CAC0B;AAE9D;AACO,MAAMK,4BAA4B,GAAAH,OAAA,CAAAG,4BAAA,gBAAG7B,OAAO,CAAC8B,UAAU,CAC5DN,kCAAkC,CACnC;AAED;AACM,SAAUO,IAAIA,CAClBC,IAGC;EAED,OAAQ;IAAE,CAACP,+BAA+B,GAAGA,+BAA+B;IAAE,GAAGO;EAAI,CAAE;AACzF;AAEA;AACO,MAAMC,gBAAgB,GAAAP,OAAA,CAAAO,gBAAA,gBAIzB9B,MAAM,CAAC+B,GAAG,CACZL,4BAA4B,EAC3BM,CAAC,IAAKA,CAAC,CAACF,gBAAgB,CAC1B;AAED;AACO,MAAMG,QAAQ,GAAAV,OAAA,CAAAU,QAAA,gBAAsFjC,MAAM,CAAC+B,GAAG,CACnHD,gBAAgB,EACfE,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAClB;AAED;AACO,MAAMC,OAAO,GAAAX,OAAA,CAAAW,OAAA,gBAClBlC,MAAM,CAAC+B,GAAG,CACRL,4BAA4B,EAC3BM,CAAC,IAAKA,CAAC,CAACE,OAAO,CACjB;AAEH;AACO,MAAMC,aAAa,GAAAZ,OAAA,CAAAY,aAAA,gBAItBnC,MAAM,CAAC+B,GAAG,CACZL,4BAA4B,EAC3BM,CAAC,IAAKA,CAAC,CAACG,aAAa,CACvB;AAED;AACO,MAAMC,YAAY,GAAAb,OAAA,CAAAa,YAAA,gBAAoFpC,MAAM,CAChHqC,OAAO,CACNX,4BAA4B,EAC3BM,CAAC,IAAKA,CAAC,CAACI,YAAY,CACtB","ignoreList":[]}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.json = exports.SerializationTypeId = void 0;
|
7
|
+
exports.make = make;
|
8
|
+
exports.serializationTag = void 0;
|
9
|
+
var Schema = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Schema"));
|
10
|
+
var TreeFormatter = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/TreeFormatter"));
|
11
|
+
var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Context"));
|
12
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
13
|
+
var _Function = /*#__PURE__*/require("effect/Function");
|
14
|
+
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
15
|
+
var SerializedMessage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../SerializedMessage.js"));
|
16
|
+
var ShardingException = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../ShardingException.js"));
|
17
|
+
function _getRequireWildcardCache(e) {
|
18
|
+
if ("function" != typeof WeakMap) return null;
|
19
|
+
var r = new WeakMap(),
|
20
|
+
t = new WeakMap();
|
21
|
+
return (_getRequireWildcardCache = function (e) {
|
22
|
+
return e ? t : r;
|
23
|
+
})(e);
|
24
|
+
}
|
25
|
+
function _interopRequireWildcard(e, r) {
|
26
|
+
if (!r && e && e.__esModule) return e;
|
27
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
28
|
+
default: e
|
29
|
+
};
|
30
|
+
var t = _getRequireWildcardCache(r);
|
31
|
+
if (t && t.has(e)) return t.get(e);
|
32
|
+
var n = {
|
33
|
+
__proto__: null
|
34
|
+
},
|
35
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
36
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
37
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
38
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
39
|
+
}
|
40
|
+
return n.default = e, t && t.set(e, n), n;
|
41
|
+
}
|
42
|
+
/** @internal */
|
43
|
+
const SerializationSymbolKey = "@effect/cluster/Serialization";
|
44
|
+
/** @internal */
|
45
|
+
const SerializationTypeId = exports.SerializationTypeId = /*#__PURE__*/Symbol.for(SerializationSymbolKey);
|
46
|
+
/** @internal */
|
47
|
+
const serializationTag = exports.serializationTag = /*#__PURE__*/Context.GenericTag(SerializationSymbolKey);
|
48
|
+
/** @internal */
|
49
|
+
function jsonStringify(value, schema) {
|
50
|
+
return (0, _Function.pipe)(value, Schema.encode(schema), Effect.mapError(e => new ShardingException.SerializationException({
|
51
|
+
error: TreeFormatter.formatError(e)
|
52
|
+
})), Effect.map(_ => JSON.stringify(_)));
|
53
|
+
}
|
54
|
+
/** @internal */
|
55
|
+
function jsonParse(value, schema) {
|
56
|
+
return (0, _Function.pipe)(Effect.sync(() => JSON.parse(value)), Effect.flatMap(Schema.decode(schema)), Effect.mapError(e => new ShardingException.SerializationException({
|
57
|
+
error: TreeFormatter.formatError(e)
|
58
|
+
})));
|
59
|
+
}
|
60
|
+
/** @internal */
|
61
|
+
function make(args) {
|
62
|
+
return {
|
63
|
+
...args,
|
64
|
+
[SerializationTypeId]: SerializationTypeId
|
65
|
+
};
|
66
|
+
}
|
67
|
+
/** @internal */
|
68
|
+
const json = exports.json = /*#__PURE__*/Layer.succeed(serializationTag, /*#__PURE__*/make({
|
69
|
+
encode: (schema, message) => (0, _Function.pipe)(jsonStringify(message, schema), Effect.map(SerializedMessage.make)),
|
70
|
+
decode: (schema, body) => jsonParse(body.value, schema)
|
71
|
+
}));
|
72
|
+
//# sourceMappingURL=serialization.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"serialization.js","names":["Schema","_interopRequireWildcard","require","TreeFormatter","Context","Effect","_Function","Layer","SerializedMessage","ShardingException","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SerializationSymbolKey","SerializationTypeId","exports","Symbol","for","serializationTag","GenericTag","jsonStringify","value","schema","pipe","encode","mapError","SerializationException","error","formatError","map","_","JSON","stringify","jsonParse","sync","parse","flatMap","decode","make","args","json","succeed","message","body"],"sources":["../../../src/internal/serialization.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,291 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.ShardManagerTypeId = void 0;
|
7
|
+
exports.decideAssignmentsForUnassignedShards = decideAssignmentsForUnassignedShards;
|
8
|
+
exports.decideAssignmentsForUnbalancedShards = decideAssignmentsForUnbalancedShards;
|
9
|
+
exports.shardManagerTag = exports.live = void 0;
|
10
|
+
var Chunk = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Chunk"));
|
11
|
+
var Clock = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Clock"));
|
12
|
+
var _Context = /*#__PURE__*/require("effect/Context");
|
13
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
14
|
+
var _Equal = /*#__PURE__*/require("effect/Equal");
|
15
|
+
var _Function = /*#__PURE__*/require("effect/Function");
|
16
|
+
var HashMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/HashMap"));
|
17
|
+
var HashSet = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/HashSet"));
|
18
|
+
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
19
|
+
var List = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/List"));
|
20
|
+
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
21
|
+
var PubSub = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/PubSub"));
|
22
|
+
var Schedule = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Schedule"));
|
23
|
+
var Stream = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Stream"));
|
24
|
+
var RefSynchronized = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/SynchronizedRef"));
|
25
|
+
var ManagerConfig = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../ManagerConfig.js"));
|
26
|
+
var Pods = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Pods.js"));
|
27
|
+
var PodsHealth = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../PodsHealth.js"));
|
28
|
+
var ShardId = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../ShardId.js"));
|
29
|
+
var ShardingEvent = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../ShardingEvent.js"));
|
30
|
+
var ShardingException = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../ShardingException.js"));
|
31
|
+
var Storage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Storage.js"));
|
32
|
+
var PodWithMetadata = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./podWithMetadata.js"));
|
33
|
+
var ShardManagerState = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./shardManagerState.js"));
|
34
|
+
var _utils = /*#__PURE__*/require("./utils.js");
|
35
|
+
function _getRequireWildcardCache(e) {
|
36
|
+
if ("function" != typeof WeakMap) return null;
|
37
|
+
var r = new WeakMap(),
|
38
|
+
t = new WeakMap();
|
39
|
+
return (_getRequireWildcardCache = function (e) {
|
40
|
+
return e ? t : r;
|
41
|
+
})(e);
|
42
|
+
}
|
43
|
+
function _interopRequireWildcard(e, r) {
|
44
|
+
if (!r && e && e.__esModule) return e;
|
45
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
46
|
+
default: e
|
47
|
+
};
|
48
|
+
var t = _getRequireWildcardCache(r);
|
49
|
+
if (t && t.has(e)) return t.get(e);
|
50
|
+
var n = {
|
51
|
+
__proto__: null
|
52
|
+
},
|
53
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
54
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
55
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
56
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
57
|
+
}
|
58
|
+
return n.default = e, t && t.set(e, n), n;
|
59
|
+
}
|
60
|
+
/**
|
61
|
+
* @since 1.0.0
|
62
|
+
*/
|
63
|
+
|
64
|
+
/** @internal */
|
65
|
+
const ShardManagerSymbolKey = "@effect/cluster/ShardManager";
|
66
|
+
/** @internal */
|
67
|
+
const ShardManagerTypeId = exports.ShardManagerTypeId = /*#__PURE__*/Symbol.for(ShardManagerSymbolKey);
|
68
|
+
/** @internal */
|
69
|
+
const shardManagerTag = exports.shardManagerTag = /*#__PURE__*/(0, _Context.GenericTag)(ShardManagerSymbolKey);
|
70
|
+
/** @internal */
|
71
|
+
function make(layerScope, stateRef, rebalanceSemaphore, eventsHub, healthApi, podApi, stateRepository, config) {
|
72
|
+
const getAssignments = (0, _Function.pipe)(RefSynchronized.get(stateRef), Effect.map(_ => _.shards));
|
73
|
+
const getShardingEvents = Stream.fromPubSub(eventsHub);
|
74
|
+
function register(pod) {
|
75
|
+
return (0, _Function.pipe)(Effect.logDebug("Registering " + pod.address + "@" + pod.version), Effect.zipRight(RefSynchronized.updateAndGetEffect(stateRef, state => (0, _Function.pipe)(Effect.flatMap(Effect.clock, _ => _.currentTimeMillis), Effect.map(cdt => ShardManagerState.make(HashMap.set(state.pods, pod.address, PodWithMetadata.make(pod, cdt)), state.shards))))), Effect.zipLeft(PubSub.publish(eventsHub, ShardingEvent.PodRegistered(pod.address))), Effect.flatMap(state => Effect.when(rebalance(false), () => HashSet.size(state.unassignedShards) > 0)), Effect.zipRight(Effect.forkIn(layerScope)(persistPods)), Effect.asVoid);
|
76
|
+
}
|
77
|
+
function stateHasPod(podAddress) {
|
78
|
+
return (0, _Function.pipe)(RefSynchronized.get(stateRef), Effect.map(_ => HashMap.has(_.pods, podAddress)));
|
79
|
+
}
|
80
|
+
function notifyUnhealthyPod(podAddress) {
|
81
|
+
return (0, _Function.pipe)(Effect.whenEffect((0, _Function.pipe)(PubSub.publish(eventsHub, ShardingEvent.PodHealthChecked(podAddress)), Effect.zipRight(Effect.unlessEffect(Effect.zipRight(Effect.logWarning(`${podAddress} is not alive, unregistering`), unregister(podAddress)), healthApi.isAlive(podAddress)))), stateHasPod(podAddress)), Effect.asVoid);
|
82
|
+
}
|
83
|
+
const checkAllPodsHealth = (0, _Function.pipe)(RefSynchronized.get(stateRef), Effect.map(_ => HashMap.keySet(_.pods)), Effect.flatMap(_ => Effect.forEach(_, notifyUnhealthyPod, {
|
84
|
+
concurrency: 4,
|
85
|
+
discard: true
|
86
|
+
})));
|
87
|
+
function unregister(podAddress) {
|
88
|
+
const eff = (0, _Function.pipe)(Effect.Do, Effect.zipLeft(Effect.logDebug(`Unregistering ${podAddress}`)), Effect.bind("unassignments", _ => (0, _Function.pipe)(stateRef, RefSynchronized.modify(state => [(0, _Function.pipe)(state.shards, HashMap.filter(pod => (0, _Equal.equals)(pod)(Option.some(podAddress))), HashMap.keySet), {
|
89
|
+
...state,
|
90
|
+
pods: HashMap.remove(state.pods, podAddress),
|
91
|
+
shards: HashMap.map(state.shards, _ => (0, _Equal.equals)(_)(Option.some(podAddress)) ? Option.none() : _)
|
92
|
+
}]))), Effect.tap(_ => PubSub.publish(eventsHub, ShardingEvent.PodUnregistered(podAddress))), Effect.tap(_ => Effect.when(PubSub.publish(eventsHub, ShardingEvent.ShardsUnassigned(podAddress, _.unassignments)), () => HashSet.size(_.unassignments) > 0)), Effect.zipLeft(Effect.forkIn(layerScope)(persistPods)), Effect.zipLeft(Effect.forkIn(layerScope)(rebalance(true))));
|
93
|
+
return Effect.asVoid(Effect.whenEffect(eff, stateHasPod(podAddress)));
|
94
|
+
}
|
95
|
+
function withRetry(zio) {
|
96
|
+
return (0, _Function.pipe)(zio, Effect.retry((0, _Function.pipe)(Schedule.spaced(config.persistRetryInterval), Schedule.andThen(Schedule.recurs(config.persistRetryCount)))), Effect.ignore);
|
97
|
+
}
|
98
|
+
const persistAssignments = withRetry((0, _Function.pipe)(RefSynchronized.get(stateRef), Effect.flatMap(state => stateRepository.saveAssignments(state.shards))));
|
99
|
+
const persistPods = withRetry((0, _Function.pipe)(RefSynchronized.get(stateRef), Effect.flatMap(state => stateRepository.savePods(HashMap.map(state.pods, v => v.pod)))));
|
100
|
+
function updateShardsState(shards, pod) {
|
101
|
+
return RefSynchronized.updateEffect(stateRef, state => {
|
102
|
+
if (Option.isSome(pod) && !HashMap.has(state.pods, pod.value)) {
|
103
|
+
return Effect.fail(new ShardingException.PodNoLongerRegisteredException({
|
104
|
+
podAddress: pod.value
|
105
|
+
}));
|
106
|
+
}
|
107
|
+
return Effect.succeed({
|
108
|
+
...state,
|
109
|
+
shards: (0, _Function.pipe)(state.shards, HashMap.map((assignment, shard) => HashSet.has(shards, shard) ? pod : assignment))
|
110
|
+
});
|
111
|
+
});
|
112
|
+
}
|
113
|
+
function rebalance(rebalanceImmediately) {
|
114
|
+
const algo = Effect.gen(function* (_) {
|
115
|
+
const state = yield* _(RefSynchronized.get(stateRef));
|
116
|
+
const [assignments, unassignments] = rebalanceImmediately || HashSet.size(state.unassignedShards) > 0 ? decideAssignmentsForUnassignedShards(state) : decideAssignmentsForUnbalancedShards(state, config.rebalanceRate);
|
117
|
+
const areChanges = HashMap.size(assignments) > 0 || HashMap.size(unassignments) > 0;
|
118
|
+
if (areChanges) {
|
119
|
+
yield* _(Effect.logDebug("Rebalance (rebalanceImmidiately=" + JSON.stringify(rebalanceImmediately) + ")"));
|
120
|
+
}
|
121
|
+
const failedPingedPods = yield* _(HashSet.union(HashMap.keySet(assignments), HashMap.keySet(unassignments)), Effect.forEach(pod => (0, _Function.pipe)(podApi.ping(pod), Effect.timeout(config.pingTimeout), Effect.match({
|
122
|
+
onFailure: () => Chunk.fromIterable([pod]),
|
123
|
+
onSuccess: () => Chunk.empty()
|
124
|
+
})), {
|
125
|
+
concurrency: "inherit"
|
126
|
+
}), Effect.map(Chunk.fromIterable), Effect.map(_ => Chunk.flatten(_)), Effect.map(HashSet.fromIterable));
|
127
|
+
const shardsToRemove = (0, _Function.pipe)(List.fromIterable(assignments), List.appendAll(List.fromIterable(unassignments)), List.filter(([pod, __]) => HashSet.has(failedPingedPods, pod)), List.map(([_, shards]) => List.fromIterable(shards)), List.flatMap(_ => _),
|
128
|
+
// TODO: List is missing flatMap
|
129
|
+
HashSet.fromIterable);
|
130
|
+
const readyAssignments = (0, _Function.pipe)(assignments, HashMap.map(HashSet.difference(shardsToRemove)), HashMap.filter(__ => HashSet.size(__) > 0));
|
131
|
+
const readyUnassignments = (0, _Function.pipe)(unassignments, HashMap.map(HashSet.difference(shardsToRemove)), HashMap.filter(__ => HashSet.size(__) > 0));
|
132
|
+
const [failedUnassignedPods, failedUnassignedShards] = yield* _(Effect.forEach(readyUnassignments, ([pod, shards]) => (0, _Function.pipe)(podApi.unassignShards(pod, shards), Effect.zipRight(updateShardsState(shards, Option.none())), Effect.matchEffect({
|
133
|
+
onFailure: () => Effect.succeed([HashSet.fromIterable([pod]), shards]),
|
134
|
+
onSuccess: () => (0, _Function.pipe)(PubSub.publish(eventsHub, ShardingEvent.ShardsUnassigned(pod, shards)), Effect.as([HashSet.empty(), HashSet.empty()]))
|
135
|
+
})), {
|
136
|
+
concurrency: "inherit"
|
137
|
+
}), Effect.map(Chunk.fromIterable), Effect.map(_ => Chunk.unzip(_)), Effect.map(([pods, shards]) => [Chunk.map(pods, Chunk.fromIterable), Chunk.map(shards, Chunk.fromIterable)]), Effect.map(([pods, shards]) => [HashSet.fromIterable(Chunk.flatten(pods)), HashSet.fromIterable(Chunk.flatten(shards))]));
|
138
|
+
// remove assignments of shards that couldn't be unassigned, as well as faulty pods.
|
139
|
+
const filteredAssignments = (0, _Function.pipe)(HashMap.removeMany(readyAssignments, failedUnassignedPods), HashMap.map((shards, __) => HashSet.difference(shards, failedUnassignedShards)));
|
140
|
+
// then do the assignments
|
141
|
+
const failedAssignedPods = yield* _(Effect.forEach(filteredAssignments, ([pod, shards]) => (0, _Function.pipe)(podApi.assignShards(pod, shards), Effect.zipRight(updateShardsState(shards, Option.some(pod))), Effect.matchEffect({
|
142
|
+
onFailure: () => Effect.succeed(Chunk.fromIterable([pod])),
|
143
|
+
onSuccess: () => (0, _Function.pipe)(PubSub.publish(eventsHub, ShardingEvent.ShardsAssigned(pod, shards)), Effect.as(Chunk.empty()))
|
144
|
+
})), {
|
145
|
+
concurrency: "inherit"
|
146
|
+
}), Effect.map(Chunk.fromIterable), Effect.map(_ => Chunk.flatten(_)), Effect.map(HashSet.fromIterable));
|
147
|
+
const failedPods = HashSet.union(HashSet.union(failedPingedPods, failedUnassignedPods), failedAssignedPods);
|
148
|
+
// check if failing pods are still up
|
149
|
+
yield* _(Effect.forkIn(layerScope)(Effect.forEach(failedPods, _ => notifyUnhealthyPod(_), {
|
150
|
+
discard: true
|
151
|
+
})));
|
152
|
+
if (HashSet.size(failedPods) > 0) {
|
153
|
+
yield* _(Effect.logDebug("Failed to rebalance pods: " + failedPods + " failed pinged: " + failedPingedPods + " failed assigned: " + failedAssignedPods + " failed unassigned: " + failedUnassignedPods));
|
154
|
+
}
|
155
|
+
// retry rebalancing later if there was any failure
|
156
|
+
if (HashSet.size(failedPods) > 0 && rebalanceImmediately) {
|
157
|
+
yield* _(Effect.sleep(config.rebalanceRetryInterval), Effect.zipRight(rebalance(rebalanceImmediately)), Effect.forkIn(layerScope));
|
158
|
+
}
|
159
|
+
// persist state changes to Redis
|
160
|
+
if (areChanges) {
|
161
|
+
yield* _(Effect.forkIn(layerScope)(persistAssignments));
|
162
|
+
}
|
163
|
+
});
|
164
|
+
return rebalanceSemaphore.withPermits(1)(algo);
|
165
|
+
}
|
166
|
+
return {
|
167
|
+
getAssignments,
|
168
|
+
getShardingEvents,
|
169
|
+
register,
|
170
|
+
unregister,
|
171
|
+
persistPods,
|
172
|
+
rebalance,
|
173
|
+
notifyUnhealthyPod,
|
174
|
+
checkAllPodsHealth
|
175
|
+
};
|
176
|
+
}
|
177
|
+
/** @internal */
|
178
|
+
function decideAssignmentsForUnassignedShards(state) {
|
179
|
+
return pickNewPods(List.fromIterable(state.unassignedShards), state, true, 1);
|
180
|
+
}
|
181
|
+
/** @internal */
|
182
|
+
function decideAssignmentsForUnbalancedShards(state, rebalanceRate) {
|
183
|
+
// don't do regular rebalance in the middle of a rolling update
|
184
|
+
const extraShardsToAllocate = state.allPodsHaveMaxVersion ? (0, _Function.pipe)(state.shardsPerPod, HashMap.flatMap((shards, _) => {
|
185
|
+
// count how many extra shards compared to the average
|
186
|
+
const extraShards = Math.max(HashSet.size(shards) - state.averageShardsPerPod.value, 0);
|
187
|
+
return (0, _Function.pipe)(HashMap.empty(), HashMap.set(_, HashSet.fromIterable(List.take(List.fromIterable(shards), extraShards))));
|
188
|
+
}), HashSet.fromIterable, HashSet.map(_ => _[1]), HashSet.flatMap(_ => _)) : HashSet.empty();
|
189
|
+
/*
|
190
|
+
TODO: port sortBy
|
191
|
+
val sortedShardsToRebalance = extraShardsToAllocate.toList.sortBy { shard =>
|
192
|
+
// handle unassigned shards first, then shards on the pods with most shards, then shards on old pods
|
193
|
+
state.shards.get(shard).flatten.fold((Int.MinValue, OffsetDateTime.MIN)) { pod =>
|
194
|
+
(
|
195
|
+
state.shardsPerPod.get(pod).fold(Int.MinValue)(-_.size),
|
196
|
+
state.pods.get(pod).fold(OffsetDateTime.MIN)(_.registered)
|
197
|
+
)
|
198
|
+
}
|
199
|
+
}
|
200
|
+
* */
|
201
|
+
const sortedShardsToRebalance = List.fromIterable(extraShardsToAllocate);
|
202
|
+
return pickNewPods(sortedShardsToRebalance, state, false, rebalanceRate);
|
203
|
+
}
|
204
|
+
function pickNewPods(shardsToRebalance, state, rebalanceImmediately, rebalanceRate) {
|
205
|
+
const [_, assignments] = (0, _Function.pipe)(List.reduce(shardsToRebalance, [state.shardsPerPod, List.empty()], ([shardsPerPod, assignments], shard) => {
|
206
|
+
const unassignedPods = (0, _Function.pipe)(assignments, List.flatMap(([shard, _]) => (0, _Function.pipe)(HashMap.get(state.shards, shard), Option.flatten, Option.toArray, List.fromIterable)));
|
207
|
+
// find pod with least amount of shards
|
208
|
+
return (0, _Function.pipe)(
|
209
|
+
// keep only pods with the max version
|
210
|
+
HashMap.filter(shardsPerPod, (_, pod) => {
|
211
|
+
const maxVersion = state.maxVersion;
|
212
|
+
if (Option.isNone(maxVersion)) return true;
|
213
|
+
return (0, _Function.pipe)(HashMap.get(state.pods, pod), Option.map(PodWithMetadata.extractVersion), Option.map(_ => PodWithMetadata.compareVersion(_, maxVersion.value) === 0), Option.getOrElse(() => false));
|
214
|
+
}),
|
215
|
+
// don't assign too many shards to the same pods, unless we need rebalance immediately
|
216
|
+
HashMap.filter((_, pod) => {
|
217
|
+
if (rebalanceImmediately) return true;
|
218
|
+
return (0, _Function.pipe)(assignments, List.filter(([_, p]) => (0, _Equal.equals)(p)(pod)), List.size) < HashMap.size(state.shards) * rebalanceRate;
|
219
|
+
}),
|
220
|
+
// don't assign to a pod that was unassigned in the same rebalance
|
221
|
+
HashMap.filter((_, pod) => !Option.isSome(List.findFirst(unassignedPods, (0, _Equal.equals)(pod)))), (0, _utils.minByOption)(([_, pods]) => HashSet.size(pods)), Option.match({
|
222
|
+
onNone: () => [shardsPerPod, assignments],
|
223
|
+
onSome: ([pod, shards]) => {
|
224
|
+
const oldPod = Option.flatten(HashMap.get(state.shards, shard));
|
225
|
+
// if old pod is same as new pod, don't change anything
|
226
|
+
if ((0, _Equal.equals)(oldPod)(pod)) {
|
227
|
+
return [shardsPerPod, assignments];
|
228
|
+
// if the new pod has more, as much, or only 1 less shard than the old pod, don't change anything
|
229
|
+
} else if (Option.match(HashMap.get(shardsPerPod, pod), {
|
230
|
+
onNone: () => 0,
|
231
|
+
onSome: HashSet.size
|
232
|
+
}) + 1 >= Option.match(oldPod, {
|
233
|
+
onNone: () => Number.MAX_SAFE_INTEGER,
|
234
|
+
onSome: _ => Option.match(HashMap.get(shardsPerPod, _), {
|
235
|
+
onNone: () => 0,
|
236
|
+
onSome: HashSet.size
|
237
|
+
})
|
238
|
+
})) {
|
239
|
+
return [shardsPerPod, assignments];
|
240
|
+
// otherwise, create a new assignment
|
241
|
+
} else {
|
242
|
+
const unassigned = Option.match(oldPod, {
|
243
|
+
onNone: () => shardsPerPod,
|
244
|
+
onSome: oldPod => HashMap.modify(shardsPerPod, oldPod, HashSet.remove(shard))
|
245
|
+
});
|
246
|
+
return [HashMap.modify(unassigned, pod, _ => HashSet.add(shards, shard)), List.prepend(assignments, [shard, pod])];
|
247
|
+
}
|
248
|
+
}
|
249
|
+
}));
|
250
|
+
}));
|
251
|
+
const unassignments = List.flatMap(assignments, ([shard, _]) => (0, _Function.pipe)(Option.flatten(HashMap.get(state.shards, shard)), Option.map(_ => [shard, _]), Option.match({
|
252
|
+
onNone: List.empty,
|
253
|
+
onSome: List.of
|
254
|
+
})));
|
255
|
+
const assignmentsPerPod = (0, _Function.pipe)(assignments, (0, _utils.groupBy)(([_, pod]) => pod), HashMap.map(HashSet.map(([shardId, _]) => shardId)));
|
256
|
+
const unassignmentsPerPod = (0, _Function.pipe)(unassignments, (0, _utils.groupBy)(([_, pod]) => pod), HashMap.map(HashSet.map(([shardId, _]) => shardId)));
|
257
|
+
return [assignmentsPerPod, unassignmentsPerPod];
|
258
|
+
}
|
259
|
+
/**
|
260
|
+
* @since 1.0.0
|
261
|
+
* @category layers
|
262
|
+
*/
|
263
|
+
const live = exports.live = /*#__PURE__*/Effect.gen(function* (_) {
|
264
|
+
const config = yield* _(ManagerConfig.ManagerConfig);
|
265
|
+
const stateRepository = yield* _(Storage.Storage);
|
266
|
+
const healthApi = yield* _(PodsHealth.PodsHealth);
|
267
|
+
const podsApi = yield* _(Pods.Pods);
|
268
|
+
const layerScope = yield* _(Effect.scope);
|
269
|
+
const pods = yield* _(stateRepository.getPods);
|
270
|
+
const assignments = yield* _(stateRepository.getAssignments);
|
271
|
+
const filteredPods = yield* _(Effect.filter(pods, ([podAddress]) => healthApi.isAlive(podAddress), {
|
272
|
+
concurrency: "inherit"
|
273
|
+
}), Effect.map(HashMap.fromIterable));
|
274
|
+
const filteredAssignments = HashMap.filter(assignments, pod => Option.isSome(pod) && HashMap.has(filteredPods, pod.value));
|
275
|
+
const cdt = yield* _(Clock.currentTimeMillis);
|
276
|
+
const initialState = ShardManagerState.make(HashMap.map(filteredPods, pod => PodWithMetadata.make(pod, cdt)), HashMap.union(filteredAssignments, (0, _Function.pipe)(Chunk.range(1, config.numberOfShards), Chunk.map(n => [ShardId.make(n), Option.none()]), HashMap.fromIterable)));
|
277
|
+
const state = yield* _(RefSynchronized.make(initialState));
|
278
|
+
const rebalanceSemaphore = yield* _(Effect.makeSemaphore(1));
|
279
|
+
const eventsHub = yield* _(PubSub.unbounded());
|
280
|
+
const shardManager = make(layerScope, state, rebalanceSemaphore, eventsHub, healthApi, podsApi, stateRepository, config);
|
281
|
+
yield* _(Effect.forkIn(layerScope)(shardManager.persistPods));
|
282
|
+
// rebalance immediately if there are unassigned shards
|
283
|
+
yield* _(shardManager.rebalance(HashSet.size(initialState.unassignedShards) > 0));
|
284
|
+
// start a regular rebalance at the given interval
|
285
|
+
yield* _(shardManager.rebalance(false), Effect.repeat(Schedule.spaced(config.rebalanceInterval)), Effect.forkIn(layerScope));
|
286
|
+
// log info events
|
287
|
+
yield* _(shardManager.getShardingEvents, Stream.mapEffect(_ => Effect.logDebug(JSON.stringify(_))), Stream.runDrain, Effect.forkIn(layerScope));
|
288
|
+
yield* _(Effect.logDebug("Shard Manager loaded"));
|
289
|
+
return shardManager;
|
290
|
+
}).pipe( /*#__PURE__*/Layer.scoped(shardManagerTag));
|
291
|
+
//# sourceMappingURL=shardManager.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shardManager.js","names":["Chunk","_interopRequireWildcard","require","Clock","_Context","Effect","_Equal","_Function","HashMap","HashSet","Layer","List","Option","PubSub","Schedule","Stream","RefSynchronized","ManagerConfig","Pods","PodsHealth","ShardId","ShardingEvent","ShardingException","Storage","PodWithMetadata","ShardManagerState","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ShardManagerSymbolKey","ShardManagerTypeId","exports","Symbol","for","shardManagerTag","GenericTag","make","layerScope","stateRef","rebalanceSemaphore","eventsHub","healthApi","podApi","stateRepository","config","getAssignments","pipe","map","_","shards","getShardingEvents","fromPubSub","register","pod","logDebug","address","version","zipRight","updateAndGetEffect","state","flatMap","clock","currentTimeMillis","cdt","pods","zipLeft","publish","PodRegistered","when","rebalance","size","unassignedShards","forkIn","persistPods","asVoid","stateHasPod","podAddress","notifyUnhealthyPod","whenEffect","PodHealthChecked","unlessEffect","logWarning","unregister","isAlive","checkAllPodsHealth","keySet","forEach","concurrency","discard","eff","Do","bind","modify","filter","equals","some","remove","none","tap","PodUnregistered","ShardsUnassigned","unassignments","withRetry","zio","retry","spaced","persistRetryInterval","andThen","recurs","persistRetryCount","ignore","persistAssignments","saveAssignments","savePods","v","updateShardsState","updateEffect","isSome","value","fail","PodNoLongerRegisteredException","succeed","assignment","shard","rebalanceImmediately","algo","gen","assignments","decideAssignmentsForUnassignedShards","decideAssignmentsForUnbalancedShards","rebalanceRate","areChanges","JSON","stringify","failedPingedPods","union","ping","timeout","pingTimeout","match","onFailure","fromIterable","onSuccess","empty","flatten","shardsToRemove","appendAll","__","readyAssignments","difference","readyUnassignments","failedUnassignedPods","failedUnassignedShards","unassignShards","matchEffect","as","unzip","filteredAssignments","removeMany","failedAssignedPods","assignShards","ShardsAssigned","failedPods","sleep","rebalanceRetryInterval","withPermits","pickNewPods","extraShardsToAllocate","allPodsHaveMaxVersion","shardsPerPod","extraShards","Math","max","averageShardsPerPod","take","sortedShardsToRebalance","shardsToRebalance","reduce","unassignedPods","toArray","maxVersion","isNone","extractVersion","compareVersion","getOrElse","p","findFirst","minByOption","onNone","onSome","oldPod","Number","MAX_SAFE_INTEGER","unassigned","add","prepend","of","assignmentsPerPod","groupBy","shardId","unassignmentsPerPod","live","podsApi","scope","getPods","filteredPods","initialState","range","numberOfShards","makeSemaphore","unbounded","shardManager","repeat","rebalanceInterval","mapEffect","runDrain","scoped"],"sources":["../../../src/internal/shardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|