@effect/cluster 0.52.11 → 0.53.0
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/ClusterWorkflowEngine.js +99 -105
- package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cjs/Entity.js +58 -2
- package/dist/cjs/Entity.js.map +1 -1
- package/dist/cjs/internal/entityManager.js +55 -24
- package/dist/cjs/internal/entityManager.js.map +1 -1
- package/dist/dts/ClusterWorkflowEngine.d.ts +15 -22
- package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/dts/Entity.d.ts +18 -4
- package/dist/dts/Entity.d.ts.map +1 -1
- package/dist/esm/ClusterWorkflowEngine.js +100 -106
- package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
- package/dist/esm/Entity.js +54 -0
- package/dist/esm/Entity.js.map +1 -1
- package/dist/esm/internal/entityManager.js +56 -25
- package/dist/esm/internal/entityManager.js.map +1 -1
- package/package.json +4 -4
- package/src/ClusterWorkflowEngine.ts +35 -29
- package/src/Entity.ts +67 -1
- package/src/internal/entityManager.ts +105 -46
|
@@ -12,6 +12,7 @@ import { identity } from "effect/Function";
|
|
|
12
12
|
import * as HashMap from "effect/HashMap";
|
|
13
13
|
import * as Metric from "effect/Metric";
|
|
14
14
|
import * as Option from "effect/Option";
|
|
15
|
+
import * as ParseResult from "effect/ParseResult";
|
|
15
16
|
import * as Runtime from "effect/Runtime";
|
|
16
17
|
import * as Schedule from "effect/Schedule";
|
|
17
18
|
import * as Schema from "effect/Schema";
|
|
@@ -19,8 +20,7 @@ import * as Scope from "effect/Scope";
|
|
|
19
20
|
import { AlreadyProcessingMessage, EntityNotAssignedToRunner, MailboxFull, MalformedMessage } from "../ClusterError.js";
|
|
20
21
|
import * as ClusterMetrics from "../ClusterMetrics.js";
|
|
21
22
|
import { Persisted, Uninterruptible } from "../ClusterSchema.js";
|
|
22
|
-
import { CurrentAddress, CurrentRunnerAddress, Request } from "../Entity.js";
|
|
23
|
-
import * as Envelope from "../Envelope.js";
|
|
23
|
+
import { CurrentAddress, CurrentRunnerAddress, KeepAliveLatch, KeepAliveRpc, Request } from "../Entity.js";
|
|
24
24
|
import * as Message from "../Message.js";
|
|
25
25
|
import * as MessageStorage from "../MessageStorage.js";
|
|
26
26
|
import * as Reply from "../Reply.js";
|
|
@@ -41,6 +41,9 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
|
|
|
41
41
|
const clock = yield* Effect.clock;
|
|
42
42
|
const context = yield* Effect.context();
|
|
43
43
|
const retryDriver = yield* Schedule.driver(options.defectRetryPolicy ? Schedule.andThen(options.defectRetryPolicy, defaultRetryPolicy) : defaultRetryPolicy);
|
|
44
|
+
const entityRpcs = new Map(entity.protocol.requests);
|
|
45
|
+
// add internal rpcs
|
|
46
|
+
entityRpcs.set(KeepAliveRpc._tag, KeepAliveRpc);
|
|
44
47
|
const activeServers = new Map();
|
|
45
48
|
const serverCloseLatches = new Map();
|
|
46
49
|
const processedRequestIds = new Set();
|
|
@@ -51,7 +54,8 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
|
|
|
51
54
|
});
|
|
52
55
|
}
|
|
53
56
|
const scope = yield* Effect.scope;
|
|
54
|
-
const endLatch =
|
|
57
|
+
const endLatch = Effect.unsafeMakeLatch();
|
|
58
|
+
const keepAliveLatch = Effect.unsafeMakeLatch();
|
|
55
59
|
// on shutdown, reset the storage for the entity
|
|
56
60
|
yield* Scope.addFinalizerExit(scope, () => {
|
|
57
61
|
serverCloseLatches.get(address)?.unsafeOpen();
|
|
@@ -65,7 +69,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
|
|
|
65
69
|
const writeRef = yield* ResourceRef.from(scope, Effect.fnUntraced(function* (scope) {
|
|
66
70
|
let isShuttingDown = false;
|
|
67
71
|
// Initiate the behavior for the entity
|
|
68
|
-
const handlers = yield* entity.protocol.toHandlersContext(buildHandlers).pipe(Effect.provide(context.pipe(Context.add(CurrentAddress, address), Context.add(CurrentRunnerAddress, options.runnerAddress), Context.add(Scope.Scope, scope))), Effect.locally(FiberRef.currentLogAnnotations, HashMap.empty()));
|
|
72
|
+
const handlers = yield* entity.protocol.toHandlersContext(buildHandlers).pipe(Effect.provide(context.pipe(Context.add(CurrentAddress, address), Context.add(CurrentRunnerAddress, options.runnerAddress), Context.add(KeepAliveLatch, keepAliveLatch), Context.add(Scope.Scope, scope))), Effect.locally(FiberRef.currentLogAnnotations, HashMap.empty()));
|
|
69
73
|
const server = yield* RpcServer.makeNoSerialization(entity.protocol, {
|
|
70
74
|
spanPrefix: `${entity.type}(${address.entityId})`,
|
|
71
75
|
spanAttributes: {
|
|
@@ -183,6 +187,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
|
|
|
183
187
|
}), Effect.catchAllCause(onDefect));
|
|
184
188
|
}
|
|
185
189
|
const state = {
|
|
190
|
+
scope,
|
|
186
191
|
address,
|
|
187
192
|
write(clientId, message) {
|
|
188
193
|
if (writeRef.state.current._tag !== "Acquired") {
|
|
@@ -191,7 +196,9 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
|
|
|
191
196
|
return writeRef.state.current.value(clientId, message);
|
|
192
197
|
},
|
|
193
198
|
activeRequests,
|
|
194
|
-
lastActiveCheck: clock.unsafeCurrentTimeMillis()
|
|
199
|
+
lastActiveCheck: clock.unsafeCurrentTimeMillis(),
|
|
200
|
+
keepAliveLatch,
|
|
201
|
+
keepAliveEnabled: false
|
|
195
202
|
};
|
|
196
203
|
// During shutdown, signal that no more messages will be processed
|
|
197
204
|
// and wait for the fiber to complete.
|
|
@@ -237,10 +244,27 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
|
|
|
237
244
|
address: message.envelope.address
|
|
238
245
|
}));
|
|
239
246
|
}
|
|
240
|
-
const rpc =
|
|
247
|
+
const rpc = entityRpcs.get(message.envelope.tag);
|
|
241
248
|
if (!storageEnabled && Context.get(rpc.annotations, Persisted)) {
|
|
242
249
|
return Effect.dieMessage("EntityManager.sendLocal: Cannot process a persisted message without MessageStorage");
|
|
243
250
|
}
|
|
251
|
+
// Cluster internal RPCs
|
|
252
|
+
// keep-alive RPC
|
|
253
|
+
if (rpc._tag === KeepAliveRpc._tag) {
|
|
254
|
+
const msg = message;
|
|
255
|
+
const reply = Effect.suspend(() => Effect.orDie(retryRespond(4, msg.respond(new Reply.WithExit({
|
|
256
|
+
requestId: message.envelope.requestId,
|
|
257
|
+
id: snowflakeGen.unsafeNext(),
|
|
258
|
+
exit: Exit.void
|
|
259
|
+
})))));
|
|
260
|
+
if (server.keepAliveEnabled) return reply;
|
|
261
|
+
server.keepAliveEnabled = true;
|
|
262
|
+
server.keepAliveLatch.unsafeClose();
|
|
263
|
+
return server.keepAliveLatch.whenOpen(Effect.suspend(() => {
|
|
264
|
+
server.keepAliveEnabled = false;
|
|
265
|
+
return reply;
|
|
266
|
+
})).pipe(Effect.forkIn(server.scope), Effect.asVoid);
|
|
267
|
+
}
|
|
244
268
|
if (mailboxCapacity !== "unbounded" && server.activeRequests.size >= mailboxCapacity) {
|
|
245
269
|
return Effect.fail(new MailboxFull({
|
|
246
270
|
address: message.envelope.address
|
|
@@ -286,7 +310,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
|
|
|
286
310
|
}
|
|
287
311
|
}), FiberRef.currentLogAnnotations, HashMap.empty());
|
|
288
312
|
}
|
|
289
|
-
const decodeMessage =
|
|
313
|
+
const decodeMessage = makeMessageDecode(entity, entityRpcs);
|
|
290
314
|
const runFork = Runtime.runFork(yield* Effect.runtime().pipe(Effect.interruptible));
|
|
291
315
|
return identity({
|
|
292
316
|
interruptShard: shardId => Effect.suspend(function loop() {
|
|
@@ -362,24 +386,31 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
|
|
|
362
386
|
});
|
|
363
387
|
});
|
|
364
388
|
const defaultRetryPolicy = /*#__PURE__*/Schedule.exponential(500, 1.5).pipe(/*#__PURE__*/Schedule.union(/*#__PURE__*/Schedule.spaced("10 seconds")));
|
|
365
|
-
const
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
389
|
+
const makeMessageDecode = (entity, entityRpcs) => {
|
|
390
|
+
const decodeRequest = (message, rpc) => {
|
|
391
|
+
const payload = Schema.decode(rpc.payloadSchema)(message.envelope.payload);
|
|
392
|
+
const lastSentReply = Option.isSome(message.lastSentReply) ? Effect.asSome(Schema.decode(Reply.Reply(rpc))(message.lastSentReply.value)) : Effect.succeedNone;
|
|
393
|
+
return Effect.flatMap(payload, payload => Effect.map(lastSentReply, lastSentReply => ({
|
|
394
|
+
_tag: "IncomingRequest",
|
|
395
|
+
envelope: {
|
|
396
|
+
...message.envelope,
|
|
397
|
+
payload
|
|
398
|
+
},
|
|
399
|
+
lastSentReply
|
|
400
|
+
})));
|
|
401
|
+
};
|
|
402
|
+
return message => {
|
|
403
|
+
if (message._tag === "IncomingEnvelope") {
|
|
404
|
+
return Effect.succeed(message);
|
|
405
|
+
}
|
|
406
|
+
const rpc = entityRpcs.get(message.envelope.tag);
|
|
407
|
+
if (!rpc) {
|
|
408
|
+
return Effect.fail(new ParseResult.ParseError({
|
|
409
|
+
issue: new ParseResult.Unexpected(message, `Unknown tag ${message.envelope.tag} for entity type ${entity.type}`)
|
|
410
|
+
}));
|
|
411
|
+
}
|
|
412
|
+
return decodeRequest(message, rpc);
|
|
413
|
+
};
|
|
383
414
|
};
|
|
384
415
|
const retryRespond = (times, effect) => times === 0 ? effect : Effect.catchAll(effect, () => Effect.delay(retryRespond(times - 1, effect), 200));
|
|
385
416
|
//# sourceMappingURL=entityManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityManager.js","names":["RequestId","RpcServer","Arr","Cause","Context","Duration","Effect","Equal","Exit","FiberRef","identity","HashMap","Metric","Option","Runtime","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotAssignedToRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","Uninterruptible","CurrentAddress","CurrentRunnerAddress","Request","Envelope","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","joinAllDiscard","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","retryDriver","driver","defectRetryPolicy","andThen","defaultRetryPolicy","activeServers","Map","serverCloseLatches","processedRequestIds","Set","entities","address","sharding","hasShardId","shardId","endLatch","makeLatch","addFinalizerExit","get","unsafeOpen","delete","void","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","protocol","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","spanAttributes","concurrency","disableFatalDefects","onFromServer","response","_tag","request","requestId","sentReply","rpc","annotations","isFailure","exit","isInterrupted","forServer","write","message","envelope","id","tag","payload","lastSentChunk","forkIn","unregisterReplyHandler","retryRespond","suspend","respond","WithExit","unsafeNext","flatMap","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","some","onDefect","die","defect","open","extend","addFinalizer","sync","length","cause","has","effect","unsafeRebuild","Array","keys","logError","ignore","next","annotateLogs","module","runner","catchAllCause","clientId","current","await","value","withFiberRuntime","fiber","set","unsafeMakeLatch","interruptible","timeoutOption","entityTerminationTimeout","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","tagged","unsafeUpdate","BigInt","sleep","forever","sendLocal","entry","fail","envelopeId","requests","dieMessage","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","decodeMessage","decode","makeMessageSchema","runFork","runtime","interruptShard","loop","fibers","forEach","symbol","push","removeIgnore","latch","isProcessingFor","excludeReplies","undefined","clearProcessed","clear","send","matchEffect","onFailure","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","exponential","union","spaced","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","Equal","Exit","FiberRef","identity","HashMap","Metric","Option","ParseResult","Runtime","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotAssignedToRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","Uninterruptible","CurrentAddress","CurrentRunnerAddress","KeepAliveLatch","KeepAliveRpc","Request","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","joinAllDiscard","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","retryDriver","driver","defectRetryPolicy","andThen","defaultRetryPolicy","entityRpcs","Map","protocol","requests","set","_tag","activeServers","serverCloseLatches","processedRequestIds","Set","entities","address","sharding","hasShardId","shardId","endLatch","unsafeMakeLatch","keepAliveLatch","addFinalizerExit","get","unsafeOpen","delete","void","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","spanAttributes","concurrency","disableFatalDefects","onFromServer","response","request","requestId","sentReply","rpc","annotations","isFailure","exit","isInterrupted","forServer","write","message","envelope","id","tag","payload","lastSentChunk","forkIn","unregisterReplyHandler","retryRespond","suspend","respond","WithExit","unsafeNext","flatMap","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","some","onDefect","die","defect","open","extend","addFinalizer","sync","length","cause","has","effect","unsafeRebuild","Array","keys","logError","ignore","next","annotateLogs","module","runner","catchAllCause","clientId","current","await","value","keepAliveEnabled","withFiberRuntime","fiber","interruptible","timeoutOption","entityTerminationTimeout","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","tagged","unsafeUpdate","BigInt","sleep","forever","sendLocal","entry","fail","envelopeId","dieMessage","msg","unsafeClose","whenOpen","asVoid","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","decodeMessage","makeMessageDecode","runFork","runtime","interruptShard","loop","fibers","forEach","symbol","push","removeIgnore","latch","isProcessingFor","excludeReplies","undefined","clearProcessed","clear","send","matchEffect","onFailure","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","exponential","union","spaced","decodeRequest","decode","payloadSchema","asSome","succeedNone","map","succeed","ParseError","issue","Unexpected","times","catchAll","delay"],"sources":["../../../src/internal/entityManager.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.53.0",
|
|
4
4
|
"description": "Unified interfaces for common cluster-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"homepage": "https://effect.website",
|
|
13
13
|
"peerDependencies": {
|
|
14
14
|
"@effect/platform": "^0.93.3",
|
|
15
|
-
"@effect/rpc": "^0.72.
|
|
15
|
+
"@effect/rpc": "^0.72.2",
|
|
16
16
|
"@effect/sql": "^0.48.0",
|
|
17
|
-
"@effect/workflow": "^0.
|
|
18
|
-
"effect": "^3.19.
|
|
17
|
+
"@effect/workflow": "^0.13.0",
|
|
18
|
+
"effect": "^3.19.5"
|
|
19
19
|
},
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"provenance": true
|
|
@@ -7,14 +7,14 @@ import { DurableDeferred } from "@effect/workflow"
|
|
|
7
7
|
import * as Activity from "@effect/workflow/Activity"
|
|
8
8
|
import * as DurableClock from "@effect/workflow/DurableClock"
|
|
9
9
|
import * as Workflow from "@effect/workflow/Workflow"
|
|
10
|
-
import { WorkflowEngine, WorkflowInstance } from "@effect/workflow/WorkflowEngine"
|
|
10
|
+
import { makeUnsafe, WorkflowEngine, WorkflowInstance } from "@effect/workflow/WorkflowEngine"
|
|
11
11
|
import * as Arr from "effect/Array"
|
|
12
12
|
import * as Cause from "effect/Cause"
|
|
13
13
|
import * as Context from "effect/Context"
|
|
14
14
|
import * as DateTime from "effect/DateTime"
|
|
15
15
|
import * as Duration from "effect/Duration"
|
|
16
16
|
import * as Effect from "effect/Effect"
|
|
17
|
-
import
|
|
17
|
+
import * as Exit from "effect/Exit"
|
|
18
18
|
import * as Fiber from "effect/Fiber"
|
|
19
19
|
import * as FiberId from "effect/FiberId"
|
|
20
20
|
import * as Layer from "effect/Layer"
|
|
@@ -35,6 +35,7 @@ import { EntityId } from "./EntityId.js"
|
|
|
35
35
|
import { EntityType } from "./EntityType.js"
|
|
36
36
|
import { MessageStorage } from "./MessageStorage.js"
|
|
37
37
|
import type { WithExitEncoded } from "./Reply.js"
|
|
38
|
+
import * as Reply from "./Reply.js"
|
|
38
39
|
import * as Sharding from "./Sharding.js"
|
|
39
40
|
import * as Snowflake from "./Snowflake.js"
|
|
40
41
|
|
|
@@ -252,11 +253,9 @@ export const make = Effect.gen(function*() {
|
|
|
252
253
|
yield* sharding.reset(requestId.value)
|
|
253
254
|
}, Effect.scoped)
|
|
254
255
|
|
|
255
|
-
|
|
256
|
-
register(workflow, execute)
|
|
257
|
-
|
|
258
|
-
const engine = this
|
|
259
|
-
return Effect.suspend(() =>
|
|
256
|
+
const engine = makeUnsafe({
|
|
257
|
+
register: (workflow, execute) =>
|
|
258
|
+
Effect.suspend(() =>
|
|
260
259
|
sharding.registerEntity(
|
|
261
260
|
ensureEntity(workflow),
|
|
262
261
|
Effect.gen(function*() {
|
|
@@ -277,8 +276,8 @@ export const make = Effect.gen(function*() {
|
|
|
277
276
|
return parent ? ensureSuccess(sendResumeParent(parent)) : Effect.void
|
|
278
277
|
}
|
|
279
278
|
return engine.deferredResult(InterruptSignal).pipe(
|
|
280
|
-
Effect.flatMap((
|
|
281
|
-
if (
|
|
279
|
+
Effect.flatMap((maybeExit) => {
|
|
280
|
+
if (maybeExit === undefined) {
|
|
282
281
|
return Effect.void
|
|
283
282
|
}
|
|
284
283
|
instance.suspended = false
|
|
@@ -354,10 +353,9 @@ export const make = Effect.gen(function*() {
|
|
|
354
353
|
}
|
|
355
354
|
})
|
|
356
355
|
) as Effect.Effect<void, never, Scope.Scope>
|
|
357
|
-
)
|
|
358
|
-
},
|
|
356
|
+
),
|
|
359
357
|
|
|
360
|
-
execute: ({ discard, executionId, parent, payload
|
|
358
|
+
execute: (workflow, { discard, executionId, parent, payload }) => {
|
|
361
359
|
ensureEntity(workflow)
|
|
362
360
|
return RcMap.get(clients, workflow.name).pipe(
|
|
363
361
|
Effect.flatMap((make) =>
|
|
@@ -376,7 +374,7 @@ export const make = Effect.gen(function*() {
|
|
|
376
374
|
)
|
|
377
375
|
},
|
|
378
376
|
|
|
379
|
-
poll: Effect.fnUntraced(function*(
|
|
377
|
+
poll: Effect.fnUntraced(function*(workflow, executionId) {
|
|
380
378
|
const entity = ensureEntity(workflow)
|
|
381
379
|
const exitSchema = Rpc.exitSchema(entity.protocol.requests.get("run")!)
|
|
382
380
|
const oreply = yield* requestReply({
|
|
@@ -395,7 +393,7 @@ export const make = Effect.gen(function*() {
|
|
|
395
393
|
}, Effect.orDie),
|
|
396
394
|
|
|
397
395
|
interrupt: Effect.fnUntraced(
|
|
398
|
-
function*(
|
|
396
|
+
function*(workflow, executionId) {
|
|
399
397
|
ensureEntity(workflow)
|
|
400
398
|
const oreply = yield* requestReply({
|
|
401
399
|
workflow,
|
|
@@ -411,11 +409,11 @@ export const make = Effect.gen(function*() {
|
|
|
411
409
|
return
|
|
412
410
|
}
|
|
413
411
|
|
|
414
|
-
yield*
|
|
412
|
+
yield* engine.deferredDone(InterruptSignal, {
|
|
415
413
|
workflowName: workflow.name,
|
|
416
414
|
executionId,
|
|
417
415
|
deferredName: InterruptSignal.name,
|
|
418
|
-
exit:
|
|
416
|
+
exit: Exit.void
|
|
419
417
|
})
|
|
420
418
|
},
|
|
421
419
|
Effect.retry({
|
|
@@ -429,7 +427,7 @@ export const make = Effect.gen(function*() {
|
|
|
429
427
|
resume: (workflow, executionId) => ensureSuccess(resume(workflow, executionId)),
|
|
430
428
|
|
|
431
429
|
activityExecute: Effect.fnUntraced(
|
|
432
|
-
function*(
|
|
430
|
+
function*(activity, attempt) {
|
|
433
431
|
const runtime = yield* Effect.runtime<WorkflowInstance>()
|
|
434
432
|
const context = runtime.context
|
|
435
433
|
const instance = Context.get(context, WorkflowInstance)
|
|
@@ -466,7 +464,6 @@ export const make = Effect.gen(function*() {
|
|
|
466
464
|
|
|
467
465
|
deferredResult: (deferred) =>
|
|
468
466
|
WorkflowInstance.pipe(
|
|
469
|
-
Effect.tap((instance) => Effect.annotateCurrentSpan("executionId", instance.executionId)),
|
|
470
467
|
Effect.flatMap((instance) =>
|
|
471
468
|
requestReply({
|
|
472
469
|
workflow: instance.workflow,
|
|
@@ -476,11 +473,16 @@ export const make = Effect.gen(function*() {
|
|
|
476
473
|
id: deferred.name
|
|
477
474
|
})
|
|
478
475
|
),
|
|
479
|
-
Effect.map(
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
476
|
+
Effect.map((oreply) => {
|
|
477
|
+
if (Option.isNone(oreply)) {
|
|
478
|
+
return undefined
|
|
479
|
+
}
|
|
480
|
+
const reply = oreply.value
|
|
481
|
+
const decoded = decodeDeferredWithExit(reply as any)
|
|
482
|
+
return decoded.exit._tag === "Success"
|
|
483
|
+
? decoded.exit.value
|
|
484
|
+
: decoded.exit
|
|
485
|
+
}),
|
|
484
486
|
Effect.retry({
|
|
485
487
|
while: (e) => e._tag === "PersistenceError",
|
|
486
488
|
times: 3,
|
|
@@ -502,13 +504,13 @@ export const make = Effect.gen(function*() {
|
|
|
502
504
|
Effect.scoped
|
|
503
505
|
),
|
|
504
506
|
|
|
505
|
-
scheduleClock(options) {
|
|
507
|
+
scheduleClock(workflow, options) {
|
|
506
508
|
const client = clockClient(options.executionId)
|
|
507
509
|
return DateTime.now.pipe(
|
|
508
510
|
Effect.flatMap((now) =>
|
|
509
511
|
client.run({
|
|
510
512
|
name: options.clock.name,
|
|
511
|
-
workflowName:
|
|
513
|
+
workflowName: workflow.name,
|
|
512
514
|
wakeUp: DateTime.addDuration(now, options.clock.duration)
|
|
513
515
|
}, { discard: true })
|
|
514
516
|
),
|
|
@@ -516,6 +518,8 @@ export const make = Effect.gen(function*() {
|
|
|
516
518
|
)
|
|
517
519
|
}
|
|
518
520
|
})
|
|
521
|
+
|
|
522
|
+
return engine
|
|
519
523
|
})
|
|
520
524
|
|
|
521
525
|
const retryPolicy = Schedule.exponential(200, 1.5).pipe(
|
|
@@ -569,11 +573,11 @@ const makeWorkflowEntity = (workflow: Workflow.Any) =>
|
|
|
569
573
|
ActivityRpc
|
|
570
574
|
]).annotateContext(workflow.annotations)
|
|
571
575
|
|
|
572
|
-
const ExitUnknown = Schema.
|
|
576
|
+
const ExitUnknown = Schema.Exit({
|
|
573
577
|
success: Schema.Unknown,
|
|
574
578
|
failure: Schema.Unknown,
|
|
575
579
|
defect: Schema.Defect
|
|
576
|
-
})
|
|
580
|
+
})
|
|
577
581
|
|
|
578
582
|
const DeferredRpc = Rpc.make("deferred", {
|
|
579
583
|
payload: {
|
|
@@ -586,6 +590,8 @@ const DeferredRpc = Rpc.make("deferred", {
|
|
|
586
590
|
.annotate(ClusterSchema.Persisted, true)
|
|
587
591
|
.annotate(ClusterSchema.Uninterruptible, true)
|
|
588
592
|
|
|
593
|
+
const decodeDeferredWithExit = Schema.decodeSync(Reply.WithExit.schema(DeferredRpc))
|
|
594
|
+
|
|
589
595
|
const ResumeRpc = Rpc.make("resume", {
|
|
590
596
|
payload: {},
|
|
591
597
|
primaryKey: () => ""
|
|
@@ -628,11 +634,11 @@ const ClockEntityLayer = ClockEntity.toLayer(Effect.gen(function*() {
|
|
|
628
634
|
return {
|
|
629
635
|
run(request) {
|
|
630
636
|
const deferred = DurableClock.make({ name: request.payload.name, duration: Duration.zero }).deferred
|
|
631
|
-
return ensureSuccess(engine.deferredDone({
|
|
637
|
+
return ensureSuccess(engine.deferredDone(deferred, {
|
|
632
638
|
workflowName: request.payload.workflowName,
|
|
633
639
|
executionId,
|
|
634
640
|
deferredName: deferred.name,
|
|
635
|
-
exit:
|
|
641
|
+
exit: Exit.void
|
|
636
642
|
}))
|
|
637
643
|
}
|
|
638
644
|
}
|
package/src/Entity.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import * as Headers from "@effect/platform/Headers"
|
|
5
|
+
import * as Rpc from "@effect/rpc/Rpc"
|
|
5
6
|
import * as RpcClient from "@effect/rpc/RpcClient"
|
|
6
7
|
import * as RpcGroup from "@effect/rpc/RpcGroup"
|
|
7
8
|
import * as RpcServer from "@effect/rpc/RpcServer"
|
|
@@ -25,12 +26,14 @@ import { Scope } from "effect/Scope"
|
|
|
25
26
|
import type * as Stream from "effect/Stream"
|
|
26
27
|
import type { AlreadyProcessingMessage, MailboxFull, PersistenceError } from "./ClusterError.js"
|
|
27
28
|
import { ShardGroup } from "./ClusterSchema.js"
|
|
29
|
+
import * as ClusterSchema from "./ClusterSchema.js"
|
|
28
30
|
import { EntityAddress } from "./EntityAddress.js"
|
|
29
31
|
import type { EntityId } from "./EntityId.js"
|
|
30
32
|
import { EntityType } from "./EntityType.js"
|
|
31
33
|
import * as Envelope from "./Envelope.js"
|
|
32
34
|
import { hashString } from "./internal/hash.js"
|
|
33
35
|
import { ResourceMap } from "./internal/resourceMap.js"
|
|
36
|
+
import * as Message from "./Message.js"
|
|
34
37
|
import type * as Reply from "./Reply.js"
|
|
35
38
|
import { RunnerAddress } from "./RunnerAddress.js"
|
|
36
39
|
import * as ShardId from "./ShardId.js"
|
|
@@ -584,3 +587,66 @@ export const makeTestClient: <Type extends string, Rpcs extends Rpc.Any, LA, LE,
|
|
|
584
587
|
|
|
585
588
|
return (entityId: string) => map.get(entityId)
|
|
586
589
|
})
|
|
590
|
+
|
|
591
|
+
/**
|
|
592
|
+
* @since 1.0.0
|
|
593
|
+
* @category Keep alive
|
|
594
|
+
*/
|
|
595
|
+
export const keepAlive: (
|
|
596
|
+
enabled: boolean
|
|
597
|
+
) => Effect.Effect<
|
|
598
|
+
void,
|
|
599
|
+
never,
|
|
600
|
+
Sharding | CurrentAddress
|
|
601
|
+
> = Effect.fnUntraced(function*(enabled: boolean) {
|
|
602
|
+
const olatch = yield* Effect.serviceOption(KeepAliveLatch)
|
|
603
|
+
if (olatch._tag === "None") return
|
|
604
|
+
if (!enabled) {
|
|
605
|
+
yield* olatch.value.open
|
|
606
|
+
return
|
|
607
|
+
}
|
|
608
|
+
const sharding = yield* shardingTag
|
|
609
|
+
const address = yield* CurrentAddress
|
|
610
|
+
const requestId = yield* sharding.getSnowflake
|
|
611
|
+
const span = yield* Effect.orDie(Effect.currentSpan)
|
|
612
|
+
yield* Effect.orDie(sharding.sendOutgoing(
|
|
613
|
+
new Message.OutgoingRequest({
|
|
614
|
+
rpc: KeepAliveRpc,
|
|
615
|
+
context: Context.empty() as any,
|
|
616
|
+
envelope: Envelope.makeRequest({
|
|
617
|
+
requestId,
|
|
618
|
+
address,
|
|
619
|
+
tag: KeepAliveRpc._tag,
|
|
620
|
+
payload: void 0,
|
|
621
|
+
headers: Headers.empty,
|
|
622
|
+
traceId: span.traceId,
|
|
623
|
+
spanId: span.spanId,
|
|
624
|
+
sampled: span.sampled
|
|
625
|
+
}),
|
|
626
|
+
lastReceivedReply: Option.none(),
|
|
627
|
+
respond: () => Effect.void
|
|
628
|
+
}),
|
|
629
|
+
true
|
|
630
|
+
))
|
|
631
|
+
}, (effect, enabled) =>
|
|
632
|
+
Effect.withSpan(
|
|
633
|
+
effect,
|
|
634
|
+
"Entity/keepAlive",
|
|
635
|
+
{ attributes: { enabled }, captureStackTrace: false }
|
|
636
|
+
))
|
|
637
|
+
|
|
638
|
+
/**
|
|
639
|
+
* @since 1.0.0
|
|
640
|
+
* @category Keep alive
|
|
641
|
+
*/
|
|
642
|
+
export const KeepAliveRpc = Rpc.make("Cluster/Entity/keepAlive")
|
|
643
|
+
.annotate(ClusterSchema.Persisted, true)
|
|
644
|
+
.annotate(ClusterSchema.Uninterruptible, true)
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* @since 1.0.0
|
|
648
|
+
* @category Keep alive
|
|
649
|
+
*/
|
|
650
|
+
export class KeepAliveLatch extends Context.Tag(
|
|
651
|
+
"effect/cluster/Entity/KeepAliveLatch"
|
|
652
|
+
)<KeepAliveLatch, Effect.Latch>() {}
|