@effect/cluster 0.33.3 → 0.34.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ClusterError.js +24 -3
- package/dist/cjs/ClusterError.js.map +1 -1
- package/dist/cjs/ClusterMetrics.js +1 -2
- package/dist/cjs/ClusterMetrics.js.map +1 -1
- package/dist/cjs/ClusterSchema.js +1 -2
- package/dist/cjs/ClusterSchema.js.map +1 -1
- package/dist/cjs/Entity.js +81 -3
- package/dist/cjs/Entity.js.map +1 -1
- package/dist/cjs/EntityAddress.js +1 -2
- package/dist/cjs/EntityAddress.js.map +1 -1
- package/dist/cjs/EntityId.js +2 -3
- package/dist/cjs/EntityId.js.map +1 -1
- package/dist/cjs/EntityType.js +2 -3
- package/dist/cjs/EntityType.js.map +1 -1
- package/dist/cjs/Envelope.js +2 -3
- package/dist/cjs/Envelope.js.map +1 -1
- package/dist/cjs/HttpCommon.js +1 -2
- package/dist/cjs/HttpCommon.js.map +1 -1
- package/dist/cjs/HttpRunner.js +8 -9
- package/dist/cjs/HttpRunner.js.map +1 -1
- package/dist/cjs/HttpShardManager.js +1 -2
- package/dist/cjs/HttpShardManager.js.map +1 -1
- package/dist/cjs/MachineId.js +2 -3
- package/dist/cjs/MachineId.js.map +1 -1
- package/dist/cjs/Message.js +1 -2
- package/dist/cjs/Message.js.map +1 -1
- package/dist/cjs/MessageStorage.js +2 -3
- package/dist/cjs/MessageStorage.js.map +1 -1
- package/dist/cjs/Reply.js +2 -3
- package/dist/cjs/Reply.js.map +1 -1
- package/dist/cjs/Runner.js +3 -4
- package/dist/cjs/Runner.js.map +1 -1
- package/dist/cjs/RunnerAddress.js +1 -2
- package/dist/cjs/RunnerAddress.js.map +1 -1
- package/dist/cjs/RunnerHealth.js +2 -3
- package/dist/cjs/RunnerHealth.js.map +1 -1
- package/dist/cjs/RunnerServer.js +5 -6
- package/dist/cjs/RunnerServer.js.map +1 -1
- package/dist/cjs/Runners.js +27 -18
- package/dist/cjs/Runners.js.map +1 -1
- package/dist/cjs/ShardId.js +2 -3
- package/dist/cjs/ShardId.js.map +1 -1
- package/dist/cjs/ShardManager.js +15 -16
- package/dist/cjs/ShardManager.js.map +1 -1
- package/dist/cjs/ShardStorage.js +1 -2
- package/dist/cjs/ShardStorage.js.map +1 -1
- package/dist/cjs/Sharding.js +23 -8
- package/dist/cjs/Sharding.js.map +1 -1
- package/dist/cjs/ShardingConfig.js +15 -16
- package/dist/cjs/ShardingConfig.js.map +1 -1
- package/dist/cjs/ShardingRegistrationEvent.js +1 -2
- package/dist/cjs/ShardingRegistrationEvent.js.map +1 -1
- package/dist/cjs/Singleton.js +1 -2
- package/dist/cjs/Singleton.js.map +1 -1
- package/dist/cjs/SingletonAddress.js +1 -2
- package/dist/cjs/SingletonAddress.js.map +1 -1
- package/dist/cjs/Snowflake.js +3 -4
- package/dist/cjs/Snowflake.js.map +1 -1
- package/dist/cjs/SocketRunner.js +1 -2
- package/dist/cjs/SocketRunner.js.map +1 -1
- package/dist/cjs/SocketShardManager.js +1 -2
- package/dist/cjs/SocketShardManager.js.map +1 -1
- package/dist/cjs/SqlMessageStorage.js +2 -3
- package/dist/cjs/SqlMessageStorage.js.map +1 -1
- package/dist/cjs/SqlShardStorage.js +1 -2
- package/dist/cjs/SqlShardStorage.js.map +1 -1
- package/dist/cjs/SynchronizedClock.js +2 -3
- package/dist/cjs/SynchronizedClock.js.map +1 -1
- package/dist/cjs/index.js +1 -2
- package/dist/cjs/internal/entityManager.js +3 -4
- package/dist/cjs/internal/entityManager.js.map +1 -1
- package/dist/cjs/internal/entityReaper.js +1 -2
- package/dist/cjs/internal/entityReaper.js.map +1 -1
- package/dist/cjs/internal/resourceMap.js +1 -2
- package/dist/cjs/internal/resourceMap.js.map +1 -1
- package/dist/cjs/internal/resourceRef.js +1 -2
- package/dist/cjs/internal/resourceRef.js.map +1 -1
- package/dist/cjs/internal/shardManager.js +2 -3
- package/dist/cjs/internal/shardManager.js.map +1 -1
- package/dist/dts/ClusterError.d.ts +22 -0
- package/dist/dts/ClusterError.d.ts.map +1 -1
- package/dist/dts/DeliverAt.d.ts.map +1 -1
- package/dist/dts/Entity.d.ts +34 -10
- package/dist/dts/Entity.d.ts.map +1 -1
- package/dist/dts/Envelope.d.ts.map +1 -1
- package/dist/dts/HttpCommon.d.ts.map +1 -1
- package/dist/dts/HttpRunner.d.ts.map +1 -1
- package/dist/dts/HttpShardManager.d.ts.map +1 -1
- package/dist/dts/MachineId.d.ts.map +1 -1
- package/dist/dts/Message.d.ts +1 -1
- package/dist/dts/Message.d.ts.map +1 -1
- package/dist/dts/MessageStorage.d.ts.map +1 -1
- package/dist/dts/Reply.d.ts.map +1 -1
- package/dist/dts/Runner.d.ts.map +1 -1
- package/dist/dts/RunnerAddress.d.ts.map +1 -1
- package/dist/dts/Runners.d.ts +12 -11
- package/dist/dts/Runners.d.ts.map +1 -1
- package/dist/dts/ShardId.d.ts.map +1 -1
- package/dist/dts/ShardManager.d.ts +1 -1
- package/dist/dts/ShardManager.d.ts.map +1 -1
- package/dist/dts/Sharding.d.ts +6 -6
- package/dist/dts/Sharding.d.ts.map +1 -1
- package/dist/dts/ShardingConfig.d.ts +2 -2
- package/dist/dts/ShardingConfig.d.ts.map +1 -1
- package/dist/dts/Singleton.d.ts.map +1 -1
- package/dist/dts/Snowflake.d.ts.map +1 -1
- package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
- package/dist/dts/SqlShardStorage.d.ts.map +1 -1
- package/dist/esm/ClusterError.js +21 -0
- package/dist/esm/ClusterError.js.map +1 -1
- package/dist/esm/Entity.js +79 -0
- package/dist/esm/Entity.js.map +1 -1
- package/dist/esm/EntityId.js +1 -1
- package/dist/esm/EntityId.js.map +1 -1
- package/dist/esm/EntityType.js +1 -1
- package/dist/esm/EntityType.js.map +1 -1
- package/dist/esm/Envelope.js +1 -1
- package/dist/esm/Envelope.js.map +1 -1
- package/dist/esm/HttpRunner.js +7 -7
- package/dist/esm/HttpRunner.js.map +1 -1
- package/dist/esm/MachineId.js +1 -1
- package/dist/esm/MachineId.js.map +1 -1
- package/dist/esm/MessageStorage.js +1 -1
- package/dist/esm/MessageStorage.js.map +1 -1
- package/dist/esm/Reply.js +1 -1
- package/dist/esm/Reply.js.map +1 -1
- package/dist/esm/Runner.js +2 -2
- package/dist/esm/Runner.js.map +1 -1
- package/dist/esm/RunnerHealth.js +1 -1
- package/dist/esm/RunnerHealth.js.map +1 -1
- package/dist/esm/RunnerServer.js +4 -4
- package/dist/esm/RunnerServer.js.map +1 -1
- package/dist/esm/Runners.js +27 -17
- package/dist/esm/Runners.js.map +1 -1
- package/dist/esm/ShardId.js +1 -1
- package/dist/esm/ShardId.js.map +1 -1
- package/dist/esm/ShardManager.js +14 -14
- package/dist/esm/ShardManager.js.map +1 -1
- package/dist/esm/Sharding.js +23 -7
- package/dist/esm/Sharding.js.map +1 -1
- package/dist/esm/ShardingConfig.js +14 -14
- package/dist/esm/ShardingConfig.js.map +1 -1
- package/dist/esm/Snowflake.js +2 -2
- package/dist/esm/Snowflake.js.map +1 -1
- package/dist/esm/SqlMessageStorage.js +1 -1
- package/dist/esm/SqlMessageStorage.js.map +1 -1
- package/dist/esm/SynchronizedClock.js +1 -1
- package/dist/esm/SynchronizedClock.js.map +1 -1
- package/dist/esm/internal/entityManager.js +3 -3
- package/dist/esm/internal/entityManager.js.map +1 -1
- package/dist/esm/internal/shardManager.js +1 -1
- package/dist/esm/internal/shardManager.js.map +1 -1
- package/package.json +5 -5
- package/src/ClusterError.ts +24 -0
- package/src/Entity.ts +120 -9
- package/src/Message.ts +1 -1
- package/src/Runners.ts +59 -26
- package/src/Sharding.ts +81 -37
- package/src/ShardingConfig.ts +1 -1
- package/src/internal/entityManager.ts +8 -8
- package/src/internal/entityReaper.ts +3 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entityManager.js","names":["RequestId","RpcServer","Arr","Cause","Context","Duration","Effect","Exit","FiberRef","identity","HashMap","Metric","Option","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotManagedByRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","CurrentAddress","CurrentRunnerAddress","Request","Envelope","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","activeServers","Map","entities","address","sharding","isShutdown","endLatch","makeLatch","addFinalizer","ignore","resetAddress","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","protocol","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","concurrency","onFromServer","response","_tag","request","get","requestId","void","sentReply","rpc","annotations","isInterrupted","exit","retryRespond","suspend","message","respond","WithExit","id","unsafeNext","flatMap","delete","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","lastSentChunk","some","effect","unsafeRebuild","Array","keys","logError","die","defect","andThen","tapErrorCause","retry","spaced","annotateLogs","module","runner","open","extend","sync","write","envelope","tag","payload","mailboxGauge","mailboxSize","tagged","clientId","current","await","value","withFiberRuntime","fiber","interruptible","timeoutOption","entityTerminationTimeout","set","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","unsafeUpdate","BigInt","sleep","forever","forkIn","sendLocal","entry","fail","envelopeId","requests","dieMessage","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","interruptShard","shardId","loop","toInterrupt","Set","forEach","removeIgnore","discard","decodeMessage","decode","makeMessageSchema","isProcessingFor","undefined","excludeReplies","send","matchEffect","onFailure","cause","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","push","TaggedStruct","transform","Struct","PartialEncodedRequestFromSelf","fields","Literal","payloadSchema","RequestFromSelf","encoded","makeRequest","encode","OptionFromSelf","Union","typeSchema","AckChunk","Interrupt","times","catchAll","delay"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"entityManager.js","names":["RequestId","RpcServer","Arr","Cause","Context","Duration","Effect","Exit","FiberRef","identity","HashMap","Metric","Option","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotAssignedToRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","CurrentAddress","CurrentRunnerAddress","Request","Envelope","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","activeServers","Map","entities","address","sharding","isShutdown","endLatch","makeLatch","addFinalizer","ignore","resetAddress","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","protocol","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","concurrency","onFromServer","response","_tag","request","get","requestId","void","sentReply","rpc","annotations","isInterrupted","exit","retryRespond","suspend","message","respond","WithExit","id","unsafeNext","flatMap","delete","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","lastSentChunk","some","effect","unsafeRebuild","Array","keys","logError","die","defect","andThen","tapErrorCause","retry","spaced","annotateLogs","module","runner","open","extend","sync","write","envelope","tag","payload","mailboxGauge","mailboxSize","tagged","clientId","current","await","value","withFiberRuntime","fiber","interruptible","timeoutOption","entityTerminationTimeout","set","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","unsafeUpdate","BigInt","sleep","forever","forkIn","sendLocal","entry","fail","envelopeId","requests","dieMessage","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","interruptShard","shardId","loop","toInterrupt","Set","forEach","removeIgnore","discard","decodeMessage","decode","makeMessageSchema","isProcessingFor","undefined","excludeReplies","send","matchEffect","onFailure","cause","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","push","TaggedStruct","transform","Struct","PartialEncodedRequestFromSelf","fields","Literal","payloadSchema","RequestFromSelf","encoded","makeRequest","encode","OptionFromSelf","Union","typeSchema","AckChunk","Interrupt","times","catchAll","delay"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -121,7 +121,7 @@ export const RunnerWithMetadata = runner => runner;
|
|
121
121
|
export function decideAssignmentsForUnassignedShards(state) {
|
122
122
|
return pickNewRunners(state.unassignedShards, state, true, 1);
|
123
123
|
}
|
124
|
-
const allocationOrder = /*#__PURE__*/Order.combine(
|
124
|
+
const allocationOrder = /*#__PURE__*/Order.combine(/*#__PURE__*/Order.mapInput(Order.number, ([, shards]) => shards), /*#__PURE__*/Order.mapInput(Order.number, ([,, registeredAt]) => registeredAt));
|
125
125
|
/** @internal */
|
126
126
|
export function decideAssignmentsForUnbalancedShards(state, rate) {
|
127
127
|
const shardsPerRunner = state.shardsPerRunner;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"shardManager.js","names":["Arr","Clock","Effect","constFalse","MutableHashMap","MutableHashSet","Option","Order","RunnerHealth","ShardId","ShardStorage","State","runners","shards","fromStorage","fnUntraced","numberOfShards","storage","runnerHealth","storedRunners","getRunners","storedAssignments","getAssignments","deadRunners","empty","aliveRunners","forEach","address","runner","map","isAlive","set","push","concurrency","discard","length","logWarning","assignedShards","Map","invalidAssignments","shard","isSome","has","value","now","currentTimeMillis","runnerState","RunnerWithMetadata","registeredAt","shardState","n","shardId","make","fromNullable","get","constructor","maxVersion","size","none","version","undefined","meta","some","allRunnersHaveVersion","pipe","max","every","runnerVersions","getOrElse","shardsPerRunner","isEmpty","_","Set","isNone","shardIds","getOrUndefined","add","averageShardsPerRunner","runnerCount","unassignedShards","decideAssignmentsForUnassignedShards","state","pickNewRunners","allocationOrder","combine","mapInput","number","decideAssignmentsForUnbalancedShards","rate","extraShardsToAllocate","extraShards","Math","takeRandom","maybeAddress","Number","MIN_SAFE_INTEGER","match","onNone","onSome","sortedShardsToRebalance","sort","shardsToRebalance","immediate","maybeMaxVersion","addressAssignments","unassignments","changes","candidate","candidateShards","maybeRunnerMeta","runnerMeta","assignmentCount","oldRunner","toString","oldShards","modifyAt","delete","self","array","Array","from","currentIndex","randomIndex","floor","random","swap","slice","i","j","tmp"],"sources":["../../../src/internal/shardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"shardManager.js","names":["Arr","Clock","Effect","constFalse","MutableHashMap","MutableHashSet","Option","Order","RunnerHealth","ShardId","ShardStorage","State","runners","shards","fromStorage","fnUntraced","numberOfShards","storage","runnerHealth","storedRunners","getRunners","storedAssignments","getAssignments","deadRunners","empty","aliveRunners","forEach","address","runner","map","isAlive","set","push","concurrency","discard","length","logWarning","assignedShards","Map","invalidAssignments","shard","isSome","has","value","now","currentTimeMillis","runnerState","RunnerWithMetadata","registeredAt","shardState","n","shardId","make","fromNullable","get","constructor","maxVersion","size","none","version","undefined","meta","some","allRunnersHaveVersion","pipe","max","every","runnerVersions","getOrElse","shardsPerRunner","isEmpty","_","Set","isNone","shardIds","getOrUndefined","add","averageShardsPerRunner","runnerCount","unassignedShards","decideAssignmentsForUnassignedShards","state","pickNewRunners","allocationOrder","combine","mapInput","number","decideAssignmentsForUnbalancedShards","rate","extraShardsToAllocate","extraShards","Math","takeRandom","maybeAddress","Number","MIN_SAFE_INTEGER","match","onNone","onSome","sortedShardsToRebalance","sort","shardsToRebalance","immediate","maybeMaxVersion","addressAssignments","unassignments","changes","candidate","candidateShards","maybeRunnerMeta","runnerMeta","assignmentCount","oldRunner","toString","oldShards","modifyAt","delete","self","array","Array","from","currentIndex","randomIndex","floor","random","swap","slice","i","j","tmp"],"sources":["../../../src/internal/shardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@effect/cluster",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.34.1",
|
4
4
|
"description": "Unified interfaces for common cluster-specific services",
|
5
5
|
"license": "MIT",
|
6
6
|
"repository": {
|
@@ -11,10 +11,10 @@
|
|
11
11
|
"sideEffects": [],
|
12
12
|
"homepage": "https://effect.website",
|
13
13
|
"peerDependencies": {
|
14
|
-
"@effect/platform": "^0.82.
|
15
|
-
"@effect/rpc": "^0.59.
|
16
|
-
"@effect/sql": "^0.35.
|
17
|
-
"effect": "^3.15.
|
14
|
+
"@effect/platform": "^0.82.4",
|
15
|
+
"@effect/rpc": "^0.59.5",
|
16
|
+
"@effect/sql": "^0.35.4",
|
17
|
+
"effect": "^3.15.2"
|
18
18
|
},
|
19
19
|
"publishConfig": {
|
20
20
|
"provenance": true
|
package/src/ClusterError.ts
CHANGED
@@ -21,6 +21,30 @@ export const TypeId: unique symbol = Symbol.for("@effect/cluster/ClusterError")
|
|
21
21
|
*/
|
22
22
|
export type TypeId = typeof TypeId
|
23
23
|
|
24
|
+
/**
|
25
|
+
* Represents an error that occurs when a Runner receives a message for an entity
|
26
|
+
* that it is not assigned to it.
|
27
|
+
*
|
28
|
+
* @since 1.0.0
|
29
|
+
* @category errors
|
30
|
+
*/
|
31
|
+
export class EntityNotAssignedToRunner extends Schema.TaggedError<EntityNotAssignedToRunner>()(
|
32
|
+
"EntityNotAssignedToRunner",
|
33
|
+
{ address: EntityAddress }
|
34
|
+
) {
|
35
|
+
/**
|
36
|
+
* @since 1.0.0
|
37
|
+
*/
|
38
|
+
readonly [TypeId] = TypeId
|
39
|
+
|
40
|
+
/**
|
41
|
+
* @since 1.0.0
|
42
|
+
*/
|
43
|
+
static is(u: unknown): u is EntityNotAssignedToRunner {
|
44
|
+
return hasProperty(u, TypeId) && isTagged(u, "EntityNotAssignedToRunner")
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
24
48
|
/**
|
25
49
|
* Represents an error that occurs when a Runner receives a message for an entity
|
26
50
|
* that it is not responsible for managing.
|
package/src/Entity.ts
CHANGED
@@ -2,8 +2,9 @@
|
|
2
2
|
* @since 1.0.0
|
3
3
|
*/
|
4
4
|
import type * as Rpc from "@effect/rpc/Rpc"
|
5
|
-
import
|
5
|
+
import * as RpcClient from "@effect/rpc/RpcClient"
|
6
6
|
import * as RpcGroup from "@effect/rpc/RpcGroup"
|
7
|
+
import * as RpcServer from "@effect/rpc/RpcServer"
|
7
8
|
import * as Arr from "effect/Array"
|
8
9
|
import type * as Cause from "effect/Cause"
|
9
10
|
import * as Context from "effect/Context"
|
@@ -17,15 +18,26 @@ import * as Layer from "effect/Layer"
|
|
17
18
|
import * as Mailbox from "effect/Mailbox"
|
18
19
|
import * as Option from "effect/Option"
|
19
20
|
import * as Predicate from "effect/Predicate"
|
20
|
-
import
|
21
|
+
import { Scope } from "effect/Scope"
|
21
22
|
import type * as Stream from "effect/Stream"
|
22
|
-
import type {
|
23
|
-
|
23
|
+
import type {
|
24
|
+
AlreadyProcessingMessage,
|
25
|
+
EntityNotManagedByRunner,
|
26
|
+
MailboxFull,
|
27
|
+
PersistenceError
|
28
|
+
} from "./ClusterError.js"
|
29
|
+
import { EntityAddress } from "./EntityAddress.js"
|
30
|
+
import type { EntityId } from "./EntityId.js"
|
24
31
|
import { EntityType } from "./EntityType.js"
|
25
|
-
import
|
32
|
+
import * as Envelope from "./Envelope.js"
|
33
|
+
import { hashString } from "./internal/hash.js"
|
34
|
+
import { ResourceMap } from "./internal/resourceMap.js"
|
26
35
|
import type * as Reply from "./Reply.js"
|
27
|
-
import
|
36
|
+
import { RunnerAddress } from "./RunnerAddress.js"
|
37
|
+
import * as ShardId from "./ShardId.js"
|
28
38
|
import type { Sharding } from "./Sharding.js"
|
39
|
+
import { ShardingConfig } from "./ShardingConfig.js"
|
40
|
+
import * as Snowflake from "./Snowflake.js"
|
29
41
|
|
30
42
|
/**
|
31
43
|
* @since 1.0.0
|
@@ -80,7 +92,12 @@ export interface Entity<in out Rpcs extends Rpc.Any> extends Equal.Equal {
|
|
80
92
|
* Create a client for this entity.
|
81
93
|
*/
|
82
94
|
readonly client: Effect.Effect<
|
83
|
-
(
|
95
|
+
(
|
96
|
+
entityId: string
|
97
|
+
) => RpcClient.RpcClient<
|
98
|
+
Rpcs,
|
99
|
+
MailboxFull | AlreadyProcessingMessage | PersistenceError | EntityNotManagedByRunner
|
100
|
+
>,
|
84
101
|
never,
|
85
102
|
Sharding
|
86
103
|
>
|
@@ -139,7 +156,7 @@ export interface Entity<in out Rpcs extends Rpc.Any> extends Equal.Equal {
|
|
139
156
|
): Layer.Layer<
|
140
157
|
never,
|
141
158
|
never,
|
142
|
-
| Exclude<RX, Scope | CurrentAddress>
|
159
|
+
| Exclude<RX, Scope | CurrentAddress | CurrentRunnerAddress>
|
143
160
|
| R
|
144
161
|
| Rpc.Context<Rpcs>
|
145
162
|
| Rpc.Middleware<Rpcs>
|
@@ -207,7 +224,7 @@ const Proto = {
|
|
207
224
|
): Layer.Layer<
|
208
225
|
never,
|
209
226
|
never,
|
210
|
-
| Exclude<RX, Scope | CurrentAddress>
|
227
|
+
| Exclude<RX, Scope | CurrentAddress | CurrentRunnerAddress>
|
211
228
|
| RpcGroup.HandlersContext<Rpcs, Handlers>
|
212
229
|
| Rpc.Context<Rpcs>
|
213
230
|
| Rpc.Middleware<Rpcs>
|
@@ -436,3 +453,97 @@ export class Request<Rpc extends Rpc.Any> extends Data.Class<
|
|
436
453
|
}
|
437
454
|
|
438
455
|
const shardingTag = Context.GenericTag<Sharding, Sharding["Type"]>("@effect/cluster/Sharding")
|
456
|
+
|
457
|
+
/**
|
458
|
+
* @since 1.0.0
|
459
|
+
* @category Testing
|
460
|
+
*/
|
461
|
+
export const makeTestClient: <Rpcs extends Rpc.Any, LA, LE, LR>(
|
462
|
+
entity: Entity<Rpcs>,
|
463
|
+
layer: Layer.Layer<LA, LE, LR>
|
464
|
+
) => Effect.Effect<
|
465
|
+
(entityId: string) => Effect.Effect<RpcClient.RpcClient<Rpcs>>,
|
466
|
+
LE,
|
467
|
+
Scope | ShardingConfig | Exclude<LR, Sharding> | Rpc.MiddlewareClient<Rpcs>
|
468
|
+
> = Effect.fnUntraced(function*<Rpcs extends Rpc.Any, LA, LE, LR>(
|
469
|
+
entity: Entity<Rpcs>,
|
470
|
+
layer: Layer.Layer<LA, LE, LR>
|
471
|
+
) {
|
472
|
+
const config = yield* ShardingConfig
|
473
|
+
const makeShardId = (entityId: string) => ShardId.make((Math.abs(hashString(entityId) % config.numberOfShards)) + 1)
|
474
|
+
const snowflakeGen = yield* Snowflake.makeGenerator
|
475
|
+
const runnerAddress = new RunnerAddress({ host: "localhost", port: 3000 })
|
476
|
+
const entityMap = new Map<string, {
|
477
|
+
readonly context: Context.Context<Rpc.Context<Rpcs> | Rpc.Middleware<Rpcs> | LR>
|
478
|
+
readonly concurrency: number | "unbounded"
|
479
|
+
readonly build: Effect.Effect<
|
480
|
+
Context.Context<Rpc.ToHandler<Rpcs>>,
|
481
|
+
never,
|
482
|
+
Scope | CurrentAddress
|
483
|
+
>
|
484
|
+
}>()
|
485
|
+
const sharding = shardingTag.of({
|
486
|
+
...({} as Sharding["Type"]),
|
487
|
+
registerEntity: (entity, handlers, options) =>
|
488
|
+
Effect.contextWith((context) => {
|
489
|
+
entityMap.set(entity.type, {
|
490
|
+
context: context as any,
|
491
|
+
concurrency: options?.concurrency ?? 1,
|
492
|
+
build: entity.protocol.toHandlersContext(handlers).pipe(
|
493
|
+
Effect.provide(context.pipe(
|
494
|
+
Context.add(CurrentRunnerAddress, runnerAddress),
|
495
|
+
Context.omit(Scope)
|
496
|
+
))
|
497
|
+
) as any
|
498
|
+
})
|
499
|
+
})
|
500
|
+
})
|
501
|
+
yield* Layer.build(Layer.provide(layer, Layer.succeed(shardingTag, sharding)))
|
502
|
+
const entityEntry = entityMap.get(entity.type)
|
503
|
+
if (!entityEntry) {
|
504
|
+
return yield* Effect.dieMessage(`Entity.makeTestClient: ${entity.type} was not registered by layer`)
|
505
|
+
}
|
506
|
+
|
507
|
+
const map = yield* ResourceMap.make(Effect.fnUntraced(function*(entityId: string) {
|
508
|
+
const address = new EntityAddress({
|
509
|
+
entityType: entity.type,
|
510
|
+
entityId: entityId as EntityId,
|
511
|
+
shardId: makeShardId(entityId)
|
512
|
+
})
|
513
|
+
const handlers = yield* entityEntry.build.pipe(
|
514
|
+
Effect.provideService(CurrentAddress, address)
|
515
|
+
)
|
516
|
+
|
517
|
+
// eslint-disable-next-line prefer-const
|
518
|
+
let client!: Effect.Effect.Success<ReturnType<typeof RpcClient.makeNoSerialization<Rpcs, never>>>
|
519
|
+
const server = yield* RpcServer.makeNoSerialization(entity.protocol, {
|
520
|
+
concurrency: entityEntry.concurrency,
|
521
|
+
onFromServer(response) {
|
522
|
+
return client.write(response)
|
523
|
+
}
|
524
|
+
}).pipe(Effect.provide(handlers))
|
525
|
+
|
526
|
+
client = yield* RpcClient.makeNoSerialization(entity.protocol, {
|
527
|
+
supportsAck: true,
|
528
|
+
generateRequestId: () => snowflakeGen.unsafeNext() as any,
|
529
|
+
onFromClient({ message }) {
|
530
|
+
if (message._tag === "Request") {
|
531
|
+
return server.write(0, {
|
532
|
+
...message,
|
533
|
+
payload: new Request({
|
534
|
+
...message,
|
535
|
+
[Envelope.TypeId]: Envelope.TypeId,
|
536
|
+
address,
|
537
|
+
requestId: Snowflake.Snowflake(message.id),
|
538
|
+
lastSentChunk: Option.none()
|
539
|
+
}) as any
|
540
|
+
})
|
541
|
+
}
|
542
|
+
return server.write(0, message)
|
543
|
+
}
|
544
|
+
})
|
545
|
+
return client.client
|
546
|
+
}))
|
547
|
+
|
548
|
+
return (entityId: string) => map.get(entityId)
|
549
|
+
})
|
package/src/Message.ts
CHANGED
@@ -84,7 +84,7 @@ export class OutgoingRequest<R extends Rpc.Any> extends Data.TaggedClass("Outgoi
|
|
84
84
|
readonly context: Context<Rpc.Context<R>>
|
85
85
|
readonly lastReceivedReply: Option.Option<Reply.Reply<R>>
|
86
86
|
readonly rpc: R
|
87
|
-
readonly respond: (reply: Reply.Reply<R>) => Effect.Effect<void
|
87
|
+
readonly respond: (reply: Reply.Reply<R>) => Effect.Effect<void>
|
88
88
|
}> {
|
89
89
|
/**
|
90
90
|
* @since 1.0.0
|
package/src/Runners.ts
CHANGED
@@ -15,11 +15,12 @@ import * as Option from "effect/Option"
|
|
15
15
|
import * as RcMap from "effect/RcMap"
|
16
16
|
import * as Schema from "effect/Schema"
|
17
17
|
import type { Scope } from "effect/Scope"
|
18
|
+
import type { PersistenceError } from "./ClusterError.js"
|
18
19
|
import {
|
19
20
|
AlreadyProcessingMessage,
|
21
|
+
EntityNotAssignedToRunner,
|
20
22
|
EntityNotManagedByRunner,
|
21
23
|
MailboxFull,
|
22
|
-
PersistenceError,
|
23
24
|
RunnerUnavailable
|
24
25
|
} from "./ClusterError.js"
|
25
26
|
import { Persisted } from "./ClusterSchema.js"
|
@@ -52,10 +53,16 @@ export class Runners extends Context.Tag("@effect/cluster/Runners")<Runners, {
|
|
52
53
|
readonly message: Message.Outgoing<R>
|
53
54
|
readonly send: <Rpc extends Rpc.Any>(
|
54
55
|
message: Message.IncomingLocal<Rpc>
|
55
|
-
) => Effect.Effect<
|
56
|
+
) => Effect.Effect<
|
57
|
+
void,
|
58
|
+
EntityNotManagedByRunner | EntityNotAssignedToRunner | MailboxFull | AlreadyProcessingMessage
|
59
|
+
>
|
56
60
|
readonly simulateRemoteSerialization: boolean
|
57
61
|
}
|
58
|
-
) => Effect.Effect<
|
62
|
+
) => Effect.Effect<
|
63
|
+
void,
|
64
|
+
EntityNotManagedByRunner | EntityNotAssignedToRunner | MailboxFull | AlreadyProcessingMessage | PersistenceError
|
65
|
+
>
|
59
66
|
|
60
67
|
/**
|
61
68
|
* Send a message to a Runner.
|
@@ -67,7 +74,12 @@ export class Runners extends Context.Tag("@effect/cluster/Runners")<Runners, {
|
|
67
74
|
}
|
68
75
|
) => Effect.Effect<
|
69
76
|
void,
|
70
|
-
|
77
|
+
| EntityNotManagedByRunner
|
78
|
+
| EntityNotAssignedToRunner
|
79
|
+
| RunnerUnavailable
|
80
|
+
| MailboxFull
|
81
|
+
| AlreadyProcessingMessage
|
82
|
+
| PersistenceError
|
71
83
|
>
|
72
84
|
|
73
85
|
/**
|
@@ -79,7 +91,7 @@ export class Runners extends Context.Tag("@effect/cluster/Runners")<Runners, {
|
|
79
91
|
readonly message: Message.Outgoing<R>
|
80
92
|
readonly discard: boolean
|
81
93
|
}
|
82
|
-
) => Effect.Effect<void>
|
94
|
+
) => Effect.Effect<void, EntityNotManagedByRunner | PersistenceError>
|
83
95
|
|
84
96
|
/**
|
85
97
|
* Notify the current Runner that a message is available, then read replies from
|
@@ -91,10 +103,12 @@ export class Runners extends Context.Tag("@effect/cluster/Runners")<Runners, {
|
|
91
103
|
readonly notifyLocal: <R extends Rpc.Any>(
|
92
104
|
options: {
|
93
105
|
readonly message: Message.Outgoing<R>
|
94
|
-
readonly notify: (
|
106
|
+
readonly notify: (
|
107
|
+
options: Message.IncomingLocal<any>
|
108
|
+
) => Effect.Effect<void, EntityNotManagedByRunner | EntityNotAssignedToRunner>
|
95
109
|
readonly discard: boolean
|
96
110
|
}
|
97
|
-
) => Effect.Effect<void>
|
111
|
+
) => Effect.Effect<void, EntityNotManagedByRunner | PersistenceError>
|
98
112
|
}>() {}
|
99
113
|
|
100
114
|
/**
|
@@ -115,7 +129,7 @@ export const make: (options: Omit<Runners["Type"], "sendLocal" | "notifyLocal">)
|
|
115
129
|
function notifyWith<E>(
|
116
130
|
message: Message.Outgoing<any>,
|
117
131
|
afterPersist: (message: Message.Outgoing<any>, isDuplicate: boolean) => Effect.Effect<void, E>
|
118
|
-
): Effect.Effect<void, E> {
|
132
|
+
): Effect.Effect<void, E | PersistenceError> {
|
119
133
|
const rpc = message.rpc as any as Rpc.AnyWithProps
|
120
134
|
const persisted = Context.get(rpc.annotations, Persisted)
|
121
135
|
if (!persisted) {
|
@@ -133,7 +147,7 @@ export const make: (options: Omit<Runners["Type"], "sendLocal" | "notifyLocal">)
|
|
133
147
|
})
|
134
148
|
}
|
135
149
|
return storage.saveEnvelope(message).pipe(
|
136
|
-
Effect.
|
150
|
+
Effect.catchTag("MalformedMessage", Effect.die),
|
137
151
|
Effect.zipRight(
|
138
152
|
entry ? Effect.zipRight(entry.latch.open, afterPersist(message, false)) : afterPersist(message, false)
|
139
153
|
)
|
@@ -146,7 +160,7 @@ export const make: (options: Omit<Runners["Type"], "sendLocal" | "notifyLocal">)
|
|
146
160
|
//
|
147
161
|
// Otherwise, we notify the remote entity and then reply from storage.
|
148
162
|
return Effect.flatMap(
|
149
|
-
Effect.
|
163
|
+
Effect.catchTag(storage.saveRequest(message), "MalformedMessage", Effect.die),
|
150
164
|
MessageStorage.SaveResult.$match({
|
151
165
|
Success: () => afterPersist(message, false),
|
152
166
|
Duplicate: ({ lastReceivedReply, originalId }) => {
|
@@ -285,13 +299,13 @@ export const make: (options: Omit<Runners["Type"], "sendLocal" | "notifyLocal">)
|
|
285
299
|
if (message._tag === "OutgoingEnvelope") {
|
286
300
|
return Effect.die(error)
|
287
301
|
}
|
288
|
-
return
|
302
|
+
return message.respond(
|
289
303
|
new Reply.WithExit({
|
290
304
|
id: snowflakeGen.unsafeNext(),
|
291
305
|
requestId: message.envelope.requestId,
|
292
306
|
exit: Exit.die(error)
|
293
307
|
})
|
294
|
-
)
|
308
|
+
)
|
295
309
|
})
|
296
310
|
)
|
297
311
|
},
|
@@ -301,32 +315,41 @@ export const make: (options: Omit<Runners["Type"], "sendLocal" | "notifyLocal">)
|
|
301
315
|
if (message._tag === "OutgoingEnvelope") {
|
302
316
|
return options.notify(options_)
|
303
317
|
} else if (!duplicate && options_.address._tag === "Some") {
|
304
|
-
return Effect.
|
318
|
+
return Effect.catchAll(
|
305
319
|
options.send({
|
306
320
|
address: options_.address.value,
|
307
321
|
message
|
308
322
|
}),
|
309
|
-
() =>
|
323
|
+
(error) => {
|
324
|
+
if (error._tag === "EntityNotManagedByRunner") {
|
325
|
+
return Effect.fail(error)
|
326
|
+
}
|
327
|
+
return replyFromStorage(message)
|
328
|
+
}
|
310
329
|
)
|
311
330
|
}
|
312
331
|
return discard ? options.notify(options_) : options.notify(options_).pipe(
|
313
|
-
Effect.
|
314
|
-
Effect.andThen(Effect.orDie(replyFromStorage(message)))
|
332
|
+
Effect.andThen(replyFromStorage(message))
|
315
333
|
)
|
316
334
|
})
|
317
335
|
},
|
318
336
|
notifyLocal(options) {
|
319
337
|
return notifyWith(options.message, (message, duplicate) => {
|
320
338
|
if (options.discard || message._tag === "OutgoingEnvelope") {
|
321
|
-
return Effect.
|
339
|
+
return Effect.catchTag(
|
340
|
+
options.notify(Message.incomingLocalFromOutgoing(message)),
|
341
|
+
"EntityNotAssignedToRunner",
|
342
|
+
() => Effect.void
|
343
|
+
)
|
322
344
|
} else if (!duplicate) {
|
323
345
|
return storage.registerReplyHandler(message).pipe(
|
324
|
-
Effect.andThen(
|
346
|
+
Effect.andThen(options.notify(Message.incomingLocalFromOutgoing(message))),
|
347
|
+
Effect.catchTag("EntityNotAssignedToRunner", () => Effect.void)
|
325
348
|
)
|
326
349
|
}
|
327
|
-
return
|
328
|
-
Effect.
|
329
|
-
Effect.andThen(
|
350
|
+
return options.notify(Message.incomingLocalFromOutgoing(message)).pipe(
|
351
|
+
Effect.catchTag("EntityNotAssignedToRunner", () => Effect.void),
|
352
|
+
Effect.andThen(replyFromStorage(message))
|
330
353
|
)
|
331
354
|
})
|
332
355
|
}
|
@@ -359,10 +382,15 @@ export const layerNoop: Layer.Layer<
|
|
359
382
|
|
360
383
|
const rpcErrors: Schema.Union<[
|
361
384
|
typeof EntityNotManagedByRunner,
|
385
|
+
typeof EntityNotAssignedToRunner,
|
362
386
|
typeof MailboxFull,
|
363
|
-
typeof AlreadyProcessingMessage
|
364
|
-
|
365
|
-
|
387
|
+
typeof AlreadyProcessingMessage
|
388
|
+
]> = Schema.Union(
|
389
|
+
EntityNotManagedByRunner,
|
390
|
+
EntityNotAssignedToRunner,
|
391
|
+
MailboxFull,
|
392
|
+
AlreadyProcessingMessage
|
393
|
+
)
|
366
394
|
|
367
395
|
/**
|
368
396
|
* @since 1.0.0
|
@@ -375,7 +403,7 @@ export class Rpcs extends RpcGroup.make(
|
|
375
403
|
envelope: Envelope.PartialEncoded
|
376
404
|
},
|
377
405
|
success: Schema.Void,
|
378
|
-
error: Schema.Union(EntityNotManagedByRunner, AlreadyProcessingMessage)
|
406
|
+
error: Schema.Union(EntityNotManagedByRunner, EntityNotAssignedToRunner, AlreadyProcessingMessage)
|
379
407
|
}),
|
380
408
|
Rpc.make("Effect", {
|
381
409
|
payload: {
|
@@ -534,7 +562,12 @@ export const makeRpc: Effect.Effect<
|
|
534
562
|
return RcMap.get(clients, address.value).pipe(
|
535
563
|
Effect.flatMap((client) => client.Notify({ envelope })),
|
536
564
|
Effect.scoped,
|
537
|
-
Effect.
|
565
|
+
Effect.catchAll((error) => {
|
566
|
+
if (error._tag === "EntityNotManagedByRunner") {
|
567
|
+
return Effect.fail(error)
|
568
|
+
}
|
569
|
+
return Effect.void
|
570
|
+
})
|
538
571
|
)
|
539
572
|
}
|
540
573
|
})
|