@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,88 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.Storage = exports.ShardingRegistrationEvent = exports.ShardingException = exports.ShardingEvent = exports.ShardingConfig = exports.Sharding = exports.ShardManagerClient = exports.ShardManager = exports.ShardId = exports.SerializedMessage = exports.SerializedEnvelope = exports.Serialization = exports.RecipientType = exports.RecipientBehaviourContext = exports.RecipientBehaviour = exports.RecipientAddress = exports.PoisonPill = exports.PodsHealth = exports.Pods = exports.PodAddress = exports.Pod = exports.Messenger = exports.MessageState = exports.Message = exports.ManagerConfig = exports.Broadcaster = exports.AtLeastOnceStorage = exports.AtLeastOnce = void 0;
|
7
|
+
var _AtLeastOnce = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./AtLeastOnce.js"));
|
8
|
+
exports.AtLeastOnce = _AtLeastOnce;
|
9
|
+
var _AtLeastOnceStorage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./AtLeastOnceStorage.js"));
|
10
|
+
exports.AtLeastOnceStorage = _AtLeastOnceStorage;
|
11
|
+
var _Broadcaster = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Broadcaster.js"));
|
12
|
+
exports.Broadcaster = _Broadcaster;
|
13
|
+
var _ManagerConfig = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ManagerConfig.js"));
|
14
|
+
exports.ManagerConfig = _ManagerConfig;
|
15
|
+
var _Message = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Message.js"));
|
16
|
+
exports.Message = _Message;
|
17
|
+
var _MessageState = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./MessageState.js"));
|
18
|
+
exports.MessageState = _MessageState;
|
19
|
+
var _Messenger = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Messenger.js"));
|
20
|
+
exports.Messenger = _Messenger;
|
21
|
+
var _Pod = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Pod.js"));
|
22
|
+
exports.Pod = _Pod;
|
23
|
+
var _PodAddress = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./PodAddress.js"));
|
24
|
+
exports.PodAddress = _PodAddress;
|
25
|
+
var _Pods = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Pods.js"));
|
26
|
+
exports.Pods = _Pods;
|
27
|
+
var _PodsHealth = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./PodsHealth.js"));
|
28
|
+
exports.PodsHealth = _PodsHealth;
|
29
|
+
var _PoisonPill = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./PoisonPill.js"));
|
30
|
+
exports.PoisonPill = _PoisonPill;
|
31
|
+
var _RecipientAddress = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./RecipientAddress.js"));
|
32
|
+
exports.RecipientAddress = _RecipientAddress;
|
33
|
+
var _RecipientBehaviour = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./RecipientBehaviour.js"));
|
34
|
+
exports.RecipientBehaviour = _RecipientBehaviour;
|
35
|
+
var _RecipientBehaviourContext = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./RecipientBehaviourContext.js"));
|
36
|
+
exports.RecipientBehaviourContext = _RecipientBehaviourContext;
|
37
|
+
var _RecipientType = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./RecipientType.js"));
|
38
|
+
exports.RecipientType = _RecipientType;
|
39
|
+
var _Serialization = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Serialization.js"));
|
40
|
+
exports.Serialization = _Serialization;
|
41
|
+
var _SerializedEnvelope = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./SerializedEnvelope.js"));
|
42
|
+
exports.SerializedEnvelope = _SerializedEnvelope;
|
43
|
+
var _SerializedMessage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./SerializedMessage.js"));
|
44
|
+
exports.SerializedMessage = _SerializedMessage;
|
45
|
+
var _ShardId = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ShardId.js"));
|
46
|
+
exports.ShardId = _ShardId;
|
47
|
+
var _ShardManager = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ShardManager.js"));
|
48
|
+
exports.ShardManager = _ShardManager;
|
49
|
+
var _ShardManagerClient = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ShardManagerClient.js"));
|
50
|
+
exports.ShardManagerClient = _ShardManagerClient;
|
51
|
+
var _Sharding = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Sharding.js"));
|
52
|
+
exports.Sharding = _Sharding;
|
53
|
+
var _ShardingConfig = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ShardingConfig.js"));
|
54
|
+
exports.ShardingConfig = _ShardingConfig;
|
55
|
+
var _ShardingEvent = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ShardingEvent.js"));
|
56
|
+
exports.ShardingEvent = _ShardingEvent;
|
57
|
+
var _ShardingException = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ShardingException.js"));
|
58
|
+
exports.ShardingException = _ShardingException;
|
59
|
+
var _ShardingRegistrationEvent = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ShardingRegistrationEvent.js"));
|
60
|
+
exports.ShardingRegistrationEvent = _ShardingRegistrationEvent;
|
61
|
+
var _Storage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Storage.js"));
|
62
|
+
exports.Storage = _Storage;
|
63
|
+
function _getRequireWildcardCache(e) {
|
64
|
+
if ("function" != typeof WeakMap) return null;
|
65
|
+
var r = new WeakMap(),
|
66
|
+
t = new WeakMap();
|
67
|
+
return (_getRequireWildcardCache = function (e) {
|
68
|
+
return e ? t : r;
|
69
|
+
})(e);
|
70
|
+
}
|
71
|
+
function _interopRequireWildcard(e, r) {
|
72
|
+
if (!r && e && e.__esModule) return e;
|
73
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
74
|
+
default: e
|
75
|
+
};
|
76
|
+
var t = _getRequireWildcardCache(r);
|
77
|
+
if (t && t.has(e)) return t.get(e);
|
78
|
+
var n = {
|
79
|
+
__proto__: null
|
80
|
+
},
|
81
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
82
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
83
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
84
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
85
|
+
}
|
86
|
+
return n.default = e, t && t.set(e, n), n;
|
87
|
+
}
|
88
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.atLeastOnceRecipientBehaviour = atLeastOnceRecipientBehaviour;
|
7
|
+
exports.runPendingMessageSweeperScoped = runPendingMessageSweeperScoped;
|
8
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
9
|
+
var _Function = /*#__PURE__*/require("effect/Function");
|
10
|
+
var Stream = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Stream"));
|
11
|
+
var AtLeastOnceStorage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../AtLeastOnceStorage.js"));
|
12
|
+
var MessageState = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../MessageState.js"));
|
13
|
+
var RecipientBehaviourContext = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../RecipientBehaviourContext.js"));
|
14
|
+
var Sharding = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Sharding.js"));
|
15
|
+
function _getRequireWildcardCache(e) {
|
16
|
+
if ("function" != typeof WeakMap) return null;
|
17
|
+
var r = new WeakMap(),
|
18
|
+
t = new WeakMap();
|
19
|
+
return (_getRequireWildcardCache = function (e) {
|
20
|
+
return e ? t : r;
|
21
|
+
})(e);
|
22
|
+
}
|
23
|
+
function _interopRequireWildcard(e, r) {
|
24
|
+
if (!r && e && e.__esModule) return e;
|
25
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
26
|
+
default: e
|
27
|
+
};
|
28
|
+
var t = _getRequireWildcardCache(r);
|
29
|
+
if (t && t.has(e)) return t.get(e);
|
30
|
+
var n = {
|
31
|
+
__proto__: null
|
32
|
+
},
|
33
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
34
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
35
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
36
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
37
|
+
}
|
38
|
+
return n.default = e, t && t.set(e, n), n;
|
39
|
+
}
|
40
|
+
/** @internal */
|
41
|
+
function runPendingMessageSweeperScoped(interval) {
|
42
|
+
return Effect.flatMap(AtLeastOnceStorage.AtLeastOnceStorage, storage => (0, _Function.pipe)(Sharding.getAssignedShardIds, Effect.flatMap(shardIds => (0, _Function.pipe)(storage.sweepPending(shardIds), Stream.mapEffect(envelope => Sharding.sendMessageToLocalEntityManagerWithoutRetries(envelope)), Stream.runDrain)), Effect.delay(interval), Effect.catchAllCause(Effect.logError), Effect.forever, Effect.forkScoped, Effect.asVoid));
|
43
|
+
}
|
44
|
+
/** @internal */
|
45
|
+
function atLeastOnceRecipientBehaviour(fa) {
|
46
|
+
return Effect.gen(function* (_) {
|
47
|
+
const storage = yield* _(AtLeastOnceStorage.AtLeastOnceStorage);
|
48
|
+
const entityId = yield* _(RecipientBehaviourContext.entityId);
|
49
|
+
const shardId = yield* _(RecipientBehaviourContext.shardId);
|
50
|
+
const recipientType = yield* _(RecipientBehaviourContext.recipientType);
|
51
|
+
const offer = yield* _(fa);
|
52
|
+
return message => (0, _Function.pipe)(storage.upsert(recipientType, shardId, entityId, message), Effect.zipRight((0, _Function.pipe)(offer(message), Effect.tap(MessageState.match({
|
53
|
+
onAcknowledged: () => Effect.void,
|
54
|
+
onProcessed: () => storage.markAsProcessed(recipientType, shardId, entityId, message)
|
55
|
+
})))));
|
56
|
+
});
|
57
|
+
}
|
58
|
+
//# sourceMappingURL=atLeastOnce.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"atLeastOnce.js","names":["Effect","_interopRequireWildcard","require","_Function","Stream","AtLeastOnceStorage","MessageState","RecipientBehaviourContext","Sharding","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","runPendingMessageSweeperScoped","interval","flatMap","storage","pipe","getAssignedShardIds","shardIds","sweepPending","mapEffect","envelope","sendMessageToLocalEntityManagerWithoutRetries","runDrain","delay","catchAllCause","logError","forever","forkScoped","asVoid","atLeastOnceRecipientBehaviour","fa","gen","_","entityId","shardId","recipientType","offer","message","upsert","zipRight","tap","match","onAcknowledged","void","onProcessed","markAsProcessed"],"sources":["../../../src/internal/atLeastOnce.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,186 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.layer = exports.atLeastOnceStorageTag = exports.TypeId = void 0;
|
7
|
+
var Schema = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Schema"));
|
8
|
+
var SqlClient = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/SqlClient"));
|
9
|
+
var SqlResolver = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/SqlResolver"));
|
10
|
+
var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Context"));
|
11
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
12
|
+
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
13
|
+
var PrimaryKey = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/PrimaryKey"));
|
14
|
+
var Stream = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Stream"));
|
15
|
+
var RecipientAddress = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../RecipientAddress.js"));
|
16
|
+
var SerializedEnvelope = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../SerializedEnvelope.js"));
|
17
|
+
var SerializedMessage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../SerializedMessage.js"));
|
18
|
+
var InternalSerialization = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./serialization.js"));
|
19
|
+
function _getRequireWildcardCache(e) {
|
20
|
+
if ("function" != typeof WeakMap) return null;
|
21
|
+
var r = new WeakMap(),
|
22
|
+
t = new WeakMap();
|
23
|
+
return (_getRequireWildcardCache = function (e) {
|
24
|
+
return e ? t : r;
|
25
|
+
})(e);
|
26
|
+
}
|
27
|
+
function _interopRequireWildcard(e, r) {
|
28
|
+
if (!r && e && e.__esModule) return e;
|
29
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
30
|
+
default: e
|
31
|
+
};
|
32
|
+
var t = _getRequireWildcardCache(r);
|
33
|
+
if (t && t.has(e)) return t.get(e);
|
34
|
+
var n = {
|
35
|
+
__proto__: null
|
36
|
+
},
|
37
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
38
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
39
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
40
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
41
|
+
}
|
42
|
+
return n.default = e, t && t.set(e, n), n;
|
43
|
+
}
|
44
|
+
/** @internal */
|
45
|
+
const SymbolKey = "@effect/cluster/AtLeastOnceStorage";
|
46
|
+
/** @internal */
|
47
|
+
const TypeId = exports.TypeId = /*#__PURE__*/Symbol.for(SymbolKey);
|
48
|
+
/** @internal */
|
49
|
+
const atLeastOnceStorageTag = exports.atLeastOnceStorageTag = /*#__PURE__*/Context.GenericTag(SymbolKey);
|
50
|
+
const make = ({
|
51
|
+
table
|
52
|
+
}) => Effect.gen(function* () {
|
53
|
+
const sql = yield* SqlClient.SqlClient;
|
54
|
+
const serialization = yield* InternalSerialization.serializationTag;
|
55
|
+
yield* sql.onDialect({
|
56
|
+
mssql: () => sql`
|
57
|
+
IF OBJECT_ID(N'${sql.literal(table)}', N'U') IS NULL
|
58
|
+
CREATE TABLE ${sql(table)} (
|
59
|
+
recipient_name VARCHAR(255) NOT NULL,
|
60
|
+
shard_id INT NOT NULL DEFAULT 0,
|
61
|
+
entity_id VARCHAR(255) NOT NULL,
|
62
|
+
message_id VARCHAR(255) NOT NULL,
|
63
|
+
message_body TEXT NOT NULL,
|
64
|
+
processed BIT NOT NULL DEFAULT 0,
|
65
|
+
CONSTRAINT ${sql(table)}_pkey PRIMARY KEY (recipient_name, entity_id, message_id)
|
66
|
+
WITH (IGNORE_DUP_KEY = ON)
|
67
|
+
)
|
68
|
+
`,
|
69
|
+
mysql: () => sql`
|
70
|
+
CREATE TABLE IF NOT EXISTS ${sql(table)} (
|
71
|
+
recipient_name VARCHAR(255) NOT NULL,
|
72
|
+
shard_id INT NOT NULL DEFAULT 0,
|
73
|
+
entity_id VARCHAR(255) NOT NULL,
|
74
|
+
message_id VARCHAR(255) NOT NULL,
|
75
|
+
message_body TEXT NOT NULL,
|
76
|
+
processed BOOLEAN NOT NULL DEFAULT FALSE,
|
77
|
+
CONSTRAINT ${sql(table)}_pkey PRIMARY KEY (recipient_name, entity_id, message_id)
|
78
|
+
)
|
79
|
+
`,
|
80
|
+
pg: () => Effect.catchAll(sql`SELECT ${table}::regclass`, () => sql`
|
81
|
+
CREATE TABLE ${sql(table)} (
|
82
|
+
recipient_name VARCHAR(255) NOT NULL,
|
83
|
+
shard_id INT NOT NULL DEFAULT 0,
|
84
|
+
entity_id VARCHAR(255) NOT NULL,
|
85
|
+
message_id VARCHAR(255) NOT NULL,
|
86
|
+
message_body TEXT NOT NULL,
|
87
|
+
processed BOOLEAN NOT NULL DEFAULT FALSE,
|
88
|
+
CONSTRAINT ${sql(table)}_pkey PRIMARY KEY (recipient_name, entity_id, message_id)
|
89
|
+
)
|
90
|
+
`),
|
91
|
+
sqlite: () => sql`
|
92
|
+
CREATE TABLE IF NOT EXISTS ${sql.literal(table)} (
|
93
|
+
recipient_name VARCHAR(255) NOT NULL,
|
94
|
+
shard_id INT NOT NULL DEFAULT (0),
|
95
|
+
entity_id VARCHAR(255) NOT NULL,
|
96
|
+
message_id VARCHAR(255) NOT NULL,
|
97
|
+
message_body CLOB NOT NULL,
|
98
|
+
processed BOOLEAN NOT NULL DEFAULT (0),
|
99
|
+
CONSTRAINT ${sql.literal(table)}_pkey PRIMARY KEY (recipient_name, entity_id, message_id)
|
100
|
+
)
|
101
|
+
`
|
102
|
+
});
|
103
|
+
const UpsertEntryResolver = yield* SqlResolver.void("UpsertEntry", {
|
104
|
+
Request: Schema.Struct({
|
105
|
+
recipient_name: Schema.String,
|
106
|
+
shard_id: Schema.Number,
|
107
|
+
entity_id: Schema.String,
|
108
|
+
message_id: Schema.String,
|
109
|
+
message_body: Schema.String
|
110
|
+
}),
|
111
|
+
execute: requests => sql.onDialect({
|
112
|
+
mssql: () => sql`
|
113
|
+
INSERT INTO ${sql(table)}
|
114
|
+
${sql.insert(requests)}
|
115
|
+
`,
|
116
|
+
mysql: () => sql`
|
117
|
+
INSERT INTO ${sql(table)}
|
118
|
+
${sql.insert(requests)}
|
119
|
+
ON DUPLICATE KEY UPDATE
|
120
|
+
recipient_name = recipient_name,
|
121
|
+
entity_id = entity_id,
|
122
|
+
message_id = message_id
|
123
|
+
`,
|
124
|
+
pg: () => sql`
|
125
|
+
INSERT INTO ${sql(table)}
|
126
|
+
${sql.insert(requests)}
|
127
|
+
ON CONFLICT ON CONSTRAINT ${sql(table)}_pkey DO NOTHING
|
128
|
+
`,
|
129
|
+
sqlite: () => sql`
|
130
|
+
INSERT INTO ${sql(table)}
|
131
|
+
${sql.insert(requests)}
|
132
|
+
ON CONFLICT (recipient_name, entity_id, message_id) DO NOTHING
|
133
|
+
`
|
134
|
+
})
|
135
|
+
});
|
136
|
+
const SweepPendingResolver = yield* SqlResolver.ordered("SweepPending", {
|
137
|
+
Request: Schema.Number,
|
138
|
+
Result: Schema.Struct({
|
139
|
+
shard_id: Schema.Number,
|
140
|
+
entity_id: Schema.String,
|
141
|
+
message_id: Schema.String,
|
142
|
+
recipient_name: Schema.String,
|
143
|
+
message_body: Schema.String
|
144
|
+
}),
|
145
|
+
execute: shard_ids => sql`
|
146
|
+
SELECT
|
147
|
+
shard_id,
|
148
|
+
entity_id,
|
149
|
+
message_id,
|
150
|
+
recipient_name,
|
151
|
+
message_body
|
152
|
+
FROM ${sql(table)}
|
153
|
+
WHERE ${sql.and([sql`processed = ${false}`, sql.in("shard_id", shard_ids)])}
|
154
|
+
`
|
155
|
+
});
|
156
|
+
return {
|
157
|
+
[TypeId]: TypeId,
|
158
|
+
upsert: (recipientType, shardId, entityId, message) => serialization.encode(recipientType.schema, message).pipe(Effect.flatMap(message_body => UpsertEntryResolver.execute({
|
159
|
+
recipient_name: recipientType.name,
|
160
|
+
shard_id: shardId.value,
|
161
|
+
entity_id: entityId,
|
162
|
+
message_id: PrimaryKey.value(message),
|
163
|
+
message_body: message_body.value
|
164
|
+
})), Effect.catchAllCause(Effect.logError)),
|
165
|
+
markAsProcessed: (recipientType, _shardId, entityId, message) => {
|
166
|
+
return sql`
|
167
|
+
UPDATE ${sql(table)}
|
168
|
+
SET ${sql.onDialectOrElse({
|
169
|
+
pg: () => sql.update({
|
170
|
+
processed: "TRUE"
|
171
|
+
}),
|
172
|
+
orElse: () => sql.update({
|
173
|
+
processed: 1
|
174
|
+
})
|
175
|
+
})}
|
176
|
+
WHERE ${sql.and([sql`recipient_name = ${recipientType.name}`, sql`entity_id = ${entityId}`, sql`message_id = ${PrimaryKey.value(message)}`])}`.pipe(Effect.catchAllCause(Effect.logError));
|
177
|
+
},
|
178
|
+
sweepPending: shardIds => Effect.forEach(shardIds, id => Effect.withRequestCaching(true)(SweepPendingResolver.execute(id.value)), {
|
179
|
+
batching: true
|
180
|
+
}).pipe(Effect.orDie, Stream.fromIterableEffect, Stream.map(entry => SerializedEnvelope.make(RecipientAddress.makeRecipientAddress(entry.recipient_name, entry.entity_id), entry.message_id, SerializedMessage.make(entry.message_body))))
|
181
|
+
};
|
182
|
+
});
|
183
|
+
/** @internal */
|
184
|
+
const layer = options => Layer.effect(atLeastOnceStorageTag, make(options));
|
185
|
+
exports.layer = layer;
|
186
|
+
//# sourceMappingURL=atLeastOnceStorage.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"atLeastOnceStorage.js","names":["Schema","_interopRequireWildcard","require","SqlClient","SqlResolver","Context","Effect","Layer","PrimaryKey","Stream","RecipientAddress","SerializedEnvelope","SerializedMessage","InternalSerialization","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SymbolKey","TypeId","exports","Symbol","for","atLeastOnceStorageTag","GenericTag","make","table","gen","sql","serialization","serializationTag","onDialect","mssql","literal","mysql","pg","catchAll","sqlite","UpsertEntryResolver","void","Request","Struct","recipient_name","String","shard_id","Number","entity_id","message_id","message_body","execute","requests","insert","SweepPendingResolver","ordered","Result","shard_ids","and","in","upsert","recipientType","shardId","entityId","message","encode","schema","pipe","flatMap","name","value","catchAllCause","logError","markAsProcessed","_shardId","onDialectOrElse","update","processed","orElse","sweepPending","shardIds","forEach","id","withRequestCaching","batching","orDie","fromIterableEffect","map","entry","makeRecipientAddress","layer","options","effect"],"sources":["../../../src/internal/atLeastOnceStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,191 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.EntityManagerTypeId = void 0;
|
7
|
+
exports.make = make;
|
8
|
+
var Clock = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Clock"));
|
9
|
+
var Duration = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Duration"));
|
10
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
11
|
+
var Exit = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Exit"));
|
12
|
+
var Fiber = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Fiber"));
|
13
|
+
var _Function = /*#__PURE__*/require("effect/Function");
|
14
|
+
var HashMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/HashMap"));
|
15
|
+
var HashSet = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/HashSet"));
|
16
|
+
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
17
|
+
var Scope = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Scope"));
|
18
|
+
var RefSynchronized = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/SynchronizedRef"));
|
19
|
+
var Message = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Message.js"));
|
20
|
+
var MessageState = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../MessageState.js"));
|
21
|
+
var RecipientBehaviourContext = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../RecipientBehaviourContext.js"));
|
22
|
+
var ShardingException = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../ShardingException.js"));
|
23
|
+
var EntityState = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./entityState.js"));
|
24
|
+
function _getRequireWildcardCache(e) {
|
25
|
+
if ("function" != typeof WeakMap) return null;
|
26
|
+
var r = new WeakMap(),
|
27
|
+
t = new WeakMap();
|
28
|
+
return (_getRequireWildcardCache = function (e) {
|
29
|
+
return e ? t : r;
|
30
|
+
})(e);
|
31
|
+
}
|
32
|
+
function _interopRequireWildcard(e, r) {
|
33
|
+
if (!r && e && e.__esModule) return e;
|
34
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
35
|
+
default: e
|
36
|
+
};
|
37
|
+
var t = _getRequireWildcardCache(r);
|
38
|
+
if (t && t.has(e)) return t.get(e);
|
39
|
+
var n = {
|
40
|
+
__proto__: null
|
41
|
+
},
|
42
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
43
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
44
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
45
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
46
|
+
}
|
47
|
+
return n.default = e, t && t.set(e, n), n;
|
48
|
+
}
|
49
|
+
/** @internal */
|
50
|
+
const EntityManagerSymbolKey = "@effect/cluster/EntityManager";
|
51
|
+
/** @internal */
|
52
|
+
const EntityManagerTypeId = exports.EntityManagerTypeId = /*#__PURE__*/Symbol.for(EntityManagerSymbolKey);
|
53
|
+
/** @internal */
|
54
|
+
function make(recipientType, recipientBehaviour, sharding, config, serialization, options = {}) {
|
55
|
+
return Effect.gen(function* (_) {
|
56
|
+
const entityMaxIdle = options.entityMaxIdleTime || Option.none();
|
57
|
+
const env = yield* _(Effect.context());
|
58
|
+
const entityStates = yield* _(RefSynchronized.make(HashMap.empty()));
|
59
|
+
function startExpirationFiber(recipientAddress) {
|
60
|
+
const maxIdleMillis = (0, _Function.pipe)(entityMaxIdle, Option.getOrElse(() => config.entityMaxIdleTime), Duration.toMillis);
|
61
|
+
function sleep(duration) {
|
62
|
+
return (0, _Function.pipe)(Effect.Do, Effect.zipLeft(Clock.sleep(Duration.millis(duration))), Effect.bind("cdt", () => Clock.currentTimeMillis), Effect.bind("map", () => RefSynchronized.get(entityStates)), Effect.let("lastReceivedAt", ({
|
63
|
+
map
|
64
|
+
}) => (0, _Function.pipe)(HashMap.get(map, recipientAddress), Option.map(_ => _.lastReceivedAt), Option.getOrElse(() => 0))), Effect.let("remaining", ({
|
65
|
+
cdt,
|
66
|
+
lastReceivedAt
|
67
|
+
}) => maxIdleMillis - cdt + lastReceivedAt), Effect.tap(_ => _.remaining > 0 ? sleep(_.remaining) : Effect.void));
|
68
|
+
}
|
69
|
+
return (0, _Function.pipe)(sleep(maxIdleMillis), Effect.zipRight(forkEntityTermination(recipientAddress)), Effect.asVoid, Effect.interruptible, Effect.annotateLogs("entityId", recipientAddress), Effect.annotateLogs("recipientType", recipientType.name), Effect.forkDaemon);
|
70
|
+
}
|
71
|
+
/**
|
72
|
+
* Performs proper termination of the entity, interrupting the expiration timer, closing the scope and failing pending replies
|
73
|
+
*/
|
74
|
+
function terminateEntity(recipientAddress) {
|
75
|
+
return (0, _Function.pipe)(
|
76
|
+
// get the things to cleanup
|
77
|
+
RefSynchronized.get(entityStates), Effect.map(HashMap.get(recipientAddress)), Effect.flatMap(Option.match({
|
78
|
+
// there is no entity state to cleanup
|
79
|
+
onNone: () => Effect.void,
|
80
|
+
// found it!
|
81
|
+
onSome: entityState => (0, _Function.pipe)(
|
82
|
+
// interrupt the expiration timer
|
83
|
+
Fiber.interrupt(entityState.expirationFiber),
|
84
|
+
// close the scope of the entity,
|
85
|
+
Effect.ensuring(Scope.close(entityState.executionScope, Exit.void)),
|
86
|
+
// remove the entry from the map
|
87
|
+
Effect.ensuring(RefSynchronized.update(entityStates, HashMap.remove(recipientAddress))),
|
88
|
+
// log error if happens
|
89
|
+
Effect.catchAllCause(Effect.logError), Effect.asVoid, Effect.annotateLogs("entityId", recipientAddress.entityId), Effect.annotateLogs("recipientType", recipientAddress.recipientTypeName))
|
90
|
+
})));
|
91
|
+
}
|
92
|
+
/**
|
93
|
+
* Begins entity termination (if needed) and return the fiber to wait for completed termination (if any)
|
94
|
+
*/
|
95
|
+
function forkEntityTermination(recipientAddress) {
|
96
|
+
return RefSynchronized.modifyEffect(entityStates, entityStatesMap => (0, _Function.pipe)(HashMap.get(entityStatesMap, recipientAddress), Option.match({
|
97
|
+
// if no entry is found, the entity has succefully shut down
|
98
|
+
onNone: () => Effect.succeed([Option.none(), entityStatesMap]),
|
99
|
+
// there is an entry, so we should begin termination
|
100
|
+
onSome: entityState => (0, _Function.pipe)(entityState.terminationFiber, Option.match({
|
101
|
+
// termination has already begun, keep everything as-is
|
102
|
+
onSome: () => Effect.succeed([entityState.terminationFiber, entityStatesMap]),
|
103
|
+
// begin to terminate the queue
|
104
|
+
onNone: () => (0, _Function.pipe)(terminateEntity(recipientAddress), Effect.forkDaemon, Effect.map(terminationFiber => [Option.some(terminationFiber), HashMap.modify(entityStatesMap, recipientAddress, EntityState.withTerminationFiber(terminationFiber))]))
|
105
|
+
}))
|
106
|
+
})));
|
107
|
+
}
|
108
|
+
function getOrCreateEntityState(recipientAddress) {
|
109
|
+
return RefSynchronized.modifyEffect(entityStates, map => (0, _Function.pipe)(HashMap.get(map, recipientAddress), Option.match({
|
110
|
+
onSome: entityState => (0, _Function.pipe)(entityState.terminationFiber, Option.match({
|
111
|
+
// offer exists, delay the interruption fiber and return the offer
|
112
|
+
onNone: () => (0, _Function.pipe)(Clock.currentTimeMillis, Effect.map(cdt => [Option.some(entityState), HashMap.modify(map, recipientAddress, EntityState.withLastReceivedAd(cdt))])),
|
113
|
+
// the queue is shutting down, stash and retry
|
114
|
+
onSome: () => Effect.succeed([Option.none(), map])
|
115
|
+
})),
|
116
|
+
onNone: () => Effect.flatMap(sharding.isShuttingDown, isGoingDown => {
|
117
|
+
if (isGoingDown) {
|
118
|
+
// don't start any fiber while sharding is shutting down
|
119
|
+
return Effect.fail(new ShardingException.EntityNotManagedByThisPodException({
|
120
|
+
recipientAddress
|
121
|
+
}));
|
122
|
+
} else {
|
123
|
+
// offer doesn't exist, create a new one
|
124
|
+
return Effect.gen(function* (_) {
|
125
|
+
const executionScope = yield* _(Scope.make());
|
126
|
+
const expirationFiber = yield* _(startExpirationFiber(recipientAddress));
|
127
|
+
const cdt = yield* _(Clock.currentTimeMillis);
|
128
|
+
const forkShutdown = (0, _Function.pipe)(forkEntityTermination(recipientAddress), Effect.asVoid);
|
129
|
+
const shardId = sharding.getShardId(recipientAddress);
|
130
|
+
const sendAndGetState = yield* _((0, _Function.pipe)(recipientBehaviour, Effect.map(offer => envelope => (0, _Function.pipe)(serialization.decode(recipientType.schema, envelope.body), Effect.flatMap(message => (0, _Function.pipe)(offer(message), Effect.flatMap(_ => MessageState.mapEffect(_, value => serialization.encode(Message.exitSchema(message), value))))))), Scope.extend(executionScope), Effect.provideService(RecipientBehaviourContext.RecipientBehaviourContext, RecipientBehaviourContext.make({
|
131
|
+
recipientAddress,
|
132
|
+
shardId,
|
133
|
+
recipientType: recipientType,
|
134
|
+
forkShutdown
|
135
|
+
})), Effect.provide(env)));
|
136
|
+
const entityState = EntityState.make({
|
137
|
+
sendAndGetState,
|
138
|
+
expirationFiber,
|
139
|
+
executionScope,
|
140
|
+
terminationFiber: Option.none(),
|
141
|
+
lastReceivedAt: cdt
|
142
|
+
});
|
143
|
+
return [Option.some(entityState), HashMap.set(map, recipientAddress, entityState)];
|
144
|
+
});
|
145
|
+
}
|
146
|
+
})
|
147
|
+
})));
|
148
|
+
}
|
149
|
+
function sendAndGetState(envelope) {
|
150
|
+
return (0, _Function.pipe)(Effect.Do, Effect.tap(() => {
|
151
|
+
// first, verify that this entity should be handled by this pod
|
152
|
+
if (recipientType._tag === "EntityType") {
|
153
|
+
return Effect.asVoid(Effect.unlessEffect(Effect.fail(new ShardingException.EntityNotManagedByThisPodException({
|
154
|
+
recipientAddress: envelope.recipientAddress
|
155
|
+
})), sharding.isEntityOnLocalShards(envelope.recipientAddress)));
|
156
|
+
} else if (recipientType._tag === "TopicType") {
|
157
|
+
return Effect.void;
|
158
|
+
}
|
159
|
+
return Effect.die("Unhandled recipientType");
|
160
|
+
}), Effect.bind("maybeEntityState", () => getOrCreateEntityState(envelope.recipientAddress)), Effect.flatMap(_ => (0, _Function.pipe)(_.maybeEntityState, Option.match({
|
161
|
+
onNone: () => (0, _Function.pipe)(Effect.sleep(Duration.millis(100)), Effect.flatMap(() => sendAndGetState(envelope))),
|
162
|
+
onSome: entityState => {
|
163
|
+
return entityState.sendAndGetState(envelope);
|
164
|
+
}
|
165
|
+
}))));
|
166
|
+
}
|
167
|
+
const terminateAllEntities = (0, _Function.pipe)(RefSynchronized.get(entityStates), Effect.map(HashMap.keySet), Effect.flatMap(terminateEntities));
|
168
|
+
function terminateEntities(entitiesToTerminate) {
|
169
|
+
return (0, _Function.pipe)(entitiesToTerminate, Effect.forEach(recipientAddress => (0, _Function.pipe)(forkEntityTermination(recipientAddress), Effect.flatMap(_ => Option.match(_, {
|
170
|
+
onNone: () => Effect.void,
|
171
|
+
onSome: terminationFiber => (0, _Function.pipe)(Fiber.await(terminationFiber), Effect.timeout(config.entityTerminationTimeout), Effect.match({
|
172
|
+
onFailure: () => Effect.logError(`Entity ${recipientAddress} termination is taking more than expected entityTerminationTimeout (${Duration.toMillis(config.entityTerminationTimeout)}ms).`),
|
173
|
+
onSuccess: () => Effect.logDebug(`Entity ${recipientAddress} cleaned up.`)
|
174
|
+
}), Effect.asVoid)
|
175
|
+
}))), {
|
176
|
+
concurrency: "inherit"
|
177
|
+
}), Effect.asVoid);
|
178
|
+
}
|
179
|
+
function terminateEntitiesOnShards(shards) {
|
180
|
+
return (0, _Function.pipe)(RefSynchronized.modify(entityStates, entities => [HashMap.filter(entities, (_, recipientAddress) => HashSet.has(shards, sharding.getShardId(recipientAddress))), entities]), Effect.map(HashMap.keySet), Effect.flatMap(terminateEntities));
|
181
|
+
}
|
182
|
+
const self = {
|
183
|
+
[EntityManagerTypeId]: EntityManagerTypeId,
|
184
|
+
sendAndGetState,
|
185
|
+
terminateAllEntities,
|
186
|
+
terminateEntitiesOnShards
|
187
|
+
};
|
188
|
+
return self;
|
189
|
+
});
|
190
|
+
}
|
191
|
+
//# sourceMappingURL=entityManager.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"entityManager.js","names":["Clock","_interopRequireWildcard","require","Duration","Effect","Exit","Fiber","_Function","HashMap","HashSet","Option","Scope","RefSynchronized","Message","MessageState","RecipientBehaviourContext","ShardingException","EntityState","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","EntityManagerSymbolKey","EntityManagerTypeId","exports","Symbol","for","make","recipientType","recipientBehaviour","sharding","config","serialization","options","gen","_","entityMaxIdle","entityMaxIdleTime","none","env","context","entityStates","empty","startExpirationFiber","recipientAddress","maxIdleMillis","pipe","getOrElse","toMillis","sleep","duration","Do","zipLeft","millis","bind","currentTimeMillis","let","map","lastReceivedAt","cdt","tap","remaining","void","zipRight","forkEntityTermination","asVoid","interruptible","annotateLogs","name","forkDaemon","terminateEntity","flatMap","match","onNone","onSome","entityState","interrupt","expirationFiber","ensuring","close","executionScope","update","remove","catchAllCause","logError","entityId","recipientTypeName","modifyEffect","entityStatesMap","succeed","terminationFiber","some","modify","withTerminationFiber","getOrCreateEntityState","withLastReceivedAd","isShuttingDown","isGoingDown","fail","EntityNotManagedByThisPodException","forkShutdown","shardId","getShardId","sendAndGetState","offer","envelope","decode","schema","body","message","mapEffect","value","encode","exitSchema","extend","provideService","provide","_tag","unlessEffect","isEntityOnLocalShards","die","maybeEntityState","terminateAllEntities","keySet","terminateEntities","entitiesToTerminate","forEach","await","timeout","entityTerminationTimeout","onFailure","onSuccess","logDebug","concurrency","terminateEntitiesOnShards","shards","entities","filter","self"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|