@effect/cluster 0.38.2 → 0.38.3
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 +34 -66
- package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
- package/dist/dts/ClusterWorkflowEngine.d.ts +0 -1
- package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/esm/ClusterWorkflowEngine.js +34 -66
- package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/ClusterWorkflowEngine.ts +54 -89
@@ -57,7 +57,6 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
57
57
|
idleTimeToLive: "5 minutes"
|
58
58
|
});
|
59
59
|
const clockClient = yield* ClockEntity.client;
|
60
|
-
const deferredClient = yield* DeferredEntity.client;
|
61
60
|
const requestIdFor = Effect.fnUntraced(function* (options) {
|
62
61
|
const shardGroup = Context.get(options.workflow.annotations, ClusterSchema.ShardGroup)(options.executionId);
|
63
62
|
const entityId = _EntityId.EntityId.make(options.executionId);
|
@@ -108,6 +107,18 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
108
107
|
});
|
109
108
|
yield* storage.clearAddress(clockAddress);
|
110
109
|
});
|
110
|
+
const resume = Effect.fnUntraced(function* (workflow, executionId) {
|
111
|
+
const maybeReply = yield* requestReply({
|
112
|
+
workflow,
|
113
|
+
entityType: `Workflow/${workflow.name}`,
|
114
|
+
executionId,
|
115
|
+
tag: "run",
|
116
|
+
id: ""
|
117
|
+
});
|
118
|
+
const maybeSuspended = Option.filter(maybeReply, reply => reply.exit._tag === "Success" && reply.exit.value._tag === "Suspended");
|
119
|
+
if (Option.isNone(maybeSuspended)) return;
|
120
|
+
yield* sharding.reset(Snowflake.Snowflake(maybeSuspended.value.requestId));
|
121
|
+
});
|
111
122
|
return _WorkflowEngine.WorkflowEngine.of({
|
112
123
|
register(workflow, execute) {
|
113
124
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
@@ -164,7 +175,11 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
164
175
|
return yield* entry.activity.executeEncoded.pipe(Workflow.intoResult, Effect.provide(Context.unsafeMake(contextMap)), Effect.ensuring(Effect.sync(() => {
|
165
176
|
activities.delete(activityId);
|
166
177
|
})));
|
167
|
-
}, Rpc.fork)
|
178
|
+
}, Rpc.fork),
|
179
|
+
deferred: Effect.fnUntraced(function* (request) {
|
180
|
+
yield* ensureSuccess(resume(workflow, executionId));
|
181
|
+
return request.payload.exit;
|
182
|
+
})
|
168
183
|
};
|
169
184
|
}));
|
170
185
|
});
|
@@ -178,17 +193,13 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
178
193
|
discard
|
179
194
|
})), Effect.orDie, Effect.scoped),
|
180
195
|
interrupt: Effect.fnUntraced(function* (workflow, executionId) {
|
181
|
-
const
|
196
|
+
const reply = yield* requestReply({
|
182
197
|
workflow,
|
183
198
|
entityType: `Workflow/${workflow.name}`,
|
184
199
|
executionId,
|
185
200
|
tag: "run",
|
186
201
|
id: ""
|
187
202
|
});
|
188
|
-
if (Option.isNone(requestId)) {
|
189
|
-
return;
|
190
|
-
}
|
191
|
-
const reply = yield* replyForRequestId(requestId.value);
|
192
203
|
const nonSuspendedReply = reply.pipe(Option.filter(reply => reply.exit._tag !== "Success" || reply.exit.value._tag !== "Suspended"));
|
193
204
|
if (Option.isSome(nonSuspendedReply)) {
|
194
205
|
return;
|
@@ -207,26 +218,6 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
207
218
|
times: 3,
|
208
219
|
schedule: Schedule.exponential(250)
|
209
220
|
}), Effect.orDie),
|
210
|
-
resume: Effect.fnUntraced(function* (workflowName, executionId) {
|
211
|
-
const workflow = workflows.get(workflowName);
|
212
|
-
if (!workflow) {
|
213
|
-
return yield* Effect.dieMessage(`WorkflowEngine.resume: ${workflowName} not registered`);
|
214
|
-
}
|
215
|
-
const maybeReply = yield* requestReply({
|
216
|
-
workflow,
|
217
|
-
entityType: `Workflow/${workflowName}`,
|
218
|
-
executionId,
|
219
|
-
tag: "run",
|
220
|
-
id: ""
|
221
|
-
});
|
222
|
-
const maybeSuspended = Option.filter(maybeReply, reply => reply.exit._tag === "Success" && reply.exit.value._tag === "Suspended");
|
223
|
-
if (Option.isNone(maybeSuspended)) return;
|
224
|
-
yield* sharding.reset(Snowflake.Snowflake(maybeSuspended.value.requestId));
|
225
|
-
}, Effect.retry({
|
226
|
-
while: e => e._tag === "PersistenceError",
|
227
|
-
times: 3,
|
228
|
-
schedule: Schedule.exponential(250)
|
229
|
-
}), Effect.orDie),
|
230
221
|
activityExecute: Effect.fnUntraced(function* ({
|
231
222
|
activity,
|
232
223
|
attempt
|
@@ -266,28 +257,27 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
266
257
|
}, Effect.scoped),
|
267
258
|
deferredResult: deferred => _WorkflowEngine.WorkflowInstance.pipe(Effect.flatMap(instance => requestReply({
|
268
259
|
workflow: instance.workflow,
|
269
|
-
entityType:
|
260
|
+
entityType: `Workflow/${instance.workflow.name}`,
|
270
261
|
executionId: instance.executionId,
|
271
|
-
tag: "
|
262
|
+
tag: "deferred",
|
272
263
|
id: deferred.name
|
273
264
|
})), Effect.map(Option.map(reply => reply.exit)), Effect.retry({
|
274
265
|
while: e => e._tag === "PersistenceError",
|
275
266
|
times: 3,
|
276
267
|
schedule: Schedule.exponential(250)
|
277
268
|
}), Effect.orDie),
|
278
|
-
deferredDone({
|
269
|
+
deferredDone: Effect.fnUntraced(function* ({
|
279
270
|
deferred,
|
280
271
|
executionId,
|
281
272
|
exit,
|
282
273
|
workflowName
|
283
274
|
}) {
|
284
|
-
const client =
|
285
|
-
return Effect.orDie(client.
|
286
|
-
workflowName,
|
275
|
+
const client = yield* RcMap.get(clients, workflowName);
|
276
|
+
return yield* Effect.orDie(client(executionId).deferred({
|
287
277
|
name: deferred.name,
|
288
278
|
exit
|
289
279
|
}));
|
290
|
-
},
|
280
|
+
}, Effect.scoped),
|
291
281
|
scheduleClock(options) {
|
292
282
|
const client = clockClient(options.executionId);
|
293
283
|
return DateTime.now.pipe(Effect.flatMap(now => client.run({
|
@@ -311,11 +301,11 @@ const ActivityRpc = /*#__PURE__*/Rpc.make("activity", {
|
|
311
301
|
attempt,
|
312
302
|
name
|
313
303
|
}) => activityPrimaryKey(name, attempt),
|
314
|
-
success:
|
304
|
+
success: Workflow.Result({
|
315
305
|
success: Schema.Unknown,
|
316
306
|
error: Schema.Unknown
|
317
307
|
})
|
318
|
-
});
|
308
|
+
}).annotate(ClusterSchema.Persisted, true);
|
319
309
|
const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`, [Rpc.make("run", {
|
320
310
|
payload: workflow.payloadSchema.fields,
|
321
311
|
primaryKey: () => "",
|
@@ -323,16 +313,8 @@ const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`,
|
|
323
313
|
success: workflow.successSchema,
|
324
314
|
error: workflow.errorSchema
|
325
315
|
})
|
326
|
-
})
|
327
|
-
const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
|
328
|
-
const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
|
329
|
-
success: Schema.Unknown,
|
330
|
-
failure: Schema.Unknown,
|
331
|
-
defect: Schema.Defect
|
332
|
-
}));
|
333
|
-
const DeferredEntity = /*#__PURE__*/Entity.make("Workflow/-/DurableDeferred", [Rpc.make("set", {
|
316
|
+
}).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), Rpc.make("deferred", {
|
334
317
|
payload: {
|
335
|
-
workflowName: Schema.String,
|
336
318
|
name: Schema.String,
|
337
319
|
exit: ExitUnknown
|
338
320
|
},
|
@@ -340,26 +322,12 @@ const DeferredEntity = /*#__PURE__*/Entity.make("Workflow/-/DurableDeferred", [R
|
|
340
322
|
name
|
341
323
|
}) => name,
|
342
324
|
success: ExitUnknown
|
343
|
-
}),
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
name
|
350
|
-
}) => name
|
351
|
-
})]).annotateRpcs(ClusterSchema.Persisted, true).annotateRpcs(ClusterSchema.Uninterruptible, true);
|
352
|
-
const DeferredEntityLayer = /*#__PURE__*/DeferredEntity.toLayer(/*#__PURE__*/Effect.gen(function* () {
|
353
|
-
const engine = yield* _WorkflowEngine.WorkflowEngine;
|
354
|
-
const address = yield* Entity.CurrentAddress;
|
355
|
-
const executionId = address.entityId;
|
356
|
-
const client = (yield* DeferredEntity.client)(executionId);
|
357
|
-
return {
|
358
|
-
set: request => Effect.as(ensureSuccess(client.resume(request.payload, {
|
359
|
-
discard: true
|
360
|
-
})), request.payload.exit),
|
361
|
-
resume: request => engine.resume(request.payload.workflowName, executionId)
|
362
|
-
};
|
325
|
+
}).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), ActivityRpc]).annotateContext(workflow.annotations);
|
326
|
+
const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
|
327
|
+
const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
|
328
|
+
success: Schema.Unknown,
|
329
|
+
failure: Schema.Unknown,
|
330
|
+
defect: Schema.Defect
|
363
331
|
}));
|
364
332
|
class ClockPayload extends /*#__PURE__*/Schema.Class(`Workflow/DurableClock/Run`)({
|
365
333
|
name: Schema.String,
|
@@ -403,5 +371,5 @@ const InterruptSignal = /*#__PURE__*/_workflow.DurableDeferred.make("Workflow/In
|
|
403
371
|
* @since 1.0.0
|
404
372
|
* @category Layers
|
405
373
|
*/
|
406
|
-
const layer = exports.layer = /*#__PURE__*/
|
374
|
+
const layer = exports.layer = /*#__PURE__*/ClockEntityLayer.pipe(/*#__PURE__*/Layer.provideMerge(/*#__PURE__*/Layer.scoped(_WorkflowEngine.WorkflowEngine, make)));
|
407
375
|
//# sourceMappingURL=ClusterWorkflowEngine.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","_interopRequireWildcard","require","_workflow","Activity","DurableClock","Workflow","_WorkflowEngine","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Schedule","Schema","ClusterSchema","DeliverAt","Entity","_EntityAddress","_EntityId","_EntityType","_MessageStorage","Sharding","Snowflake","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","exports","gen","sharding","storage","MessageStorage","workflows","Map","entities","activities","activityLatches","clients","lookup","fnUntraced","workflowName","entity","dieMessage","client","idleTimeToLive","clockClient","ClockEntity","deferredClient","DeferredEntity","requestIdFor","options","shardGroup","workflow","annotations","ShardGroup","executionId","entityId","EntityId","address","EntityAddress","entityType","EntityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","name","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","WorkflowEngine","of","register","execute","engine","suspend","makeWorkflowEntity","registerEntity","CurrentAddress","run","request","instance","WorkflowInstance","suspended","payload","onExit","void","deferredResult","InterruptSignal","flatMap","maybeResult","zipRight","ignore","interrupt","scoped","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","context","unsafeMap","CurrentAttempt","key","executeEncoded","provide","unsafeMake","ensuring","sync","delete","fork","discard","nonSuspendedReply","exit","isSome","deferredDone","deferred","while","resume","maybeReply","maybeSuspended","activityExecute","release","result","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","ensureSuccess","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","payloadSchema","fields","successSchema","errorSchema","annotateContext","annotateRpcs","Persisted","Uninterruptible","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","DeferredEntityLayer","toLayer","as","ClockPayload","Class","DateTimeUtcFromNumber","symbol","annotate","ClockEntityLayer","zero","DurableDeferred","layer","merge","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","_interopRequireWildcard","require","_workflow","Activity","DurableClock","Workflow","_WorkflowEngine","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Schedule","Schema","ClusterSchema","DeliverAt","Entity","_EntityAddress","_EntityId","_EntityType","_MessageStorage","Sharding","Snowflake","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","exports","gen","sharding","storage","MessageStorage","workflows","Map","entities","activities","activityLatches","clients","lookup","fnUntraced","workflowName","entity","dieMessage","client","idleTimeToLive","clockClient","ClockEntity","requestIdFor","options","shardGroup","workflow","annotations","ShardGroup","executionId","entityId","EntityId","address","EntityAddress","entityType","EntityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","name","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","WorkflowEngine","of","register","execute","engine","suspend","makeWorkflowEntity","registerEntity","CurrentAddress","run","request","instance","WorkflowInstance","suspended","payload","onExit","void","deferredResult","InterruptSignal","flatMap","maybeResult","zipRight","ignore","interrupt","scoped","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","context","unsafeMap","CurrentAttempt","key","executeEncoded","provide","unsafeMake","ensuring","sync","delete","fork","deferred","ensureSuccess","discard","nonSuspendedReply","isSome","deferredDone","while","activityExecute","release","result","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","payloadSchema","fields","successSchema","errorSchema","Uninterruptible","ExitUnknown","annotateContext","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","DurableDeferred","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -22,7 +22,6 @@ export declare const make: Effect.Effect<{
|
|
22
22
|
readonly discard: Discard;
|
23
23
|
}) => Effect.Effect<Discard extends true ? void : Workflow.Result<unknown, unknown>>;
|
24
24
|
readonly interrupt: (workflow: Workflow.Any, executionId: string) => Effect.Effect<void>;
|
25
|
-
readonly resume: (workflowName: string, executionId: string) => Effect.Effect<void>;
|
26
25
|
readonly activityExecute: (options: {
|
27
26
|
readonly activity: Activity.Any;
|
28
27
|
readonly attempt: number;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ClusterWorkflowEngine.d.ts","sourceRoot":"","sources":["../../src/ClusterWorkflowEngine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAKlF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC;;;GAGG;AACH,eAAO,MAAM,IAAI
|
1
|
+
{"version":3,"file":"ClusterWorkflowEngine.d.ts","sourceRoot":"","sources":["../../src/ClusterWorkflowEngine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAKlF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;4EA2Uf,CAAA;AAkGF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,cAAc,EACd,KAAK,EACL,QAAQ,CAAC,QAAQ,GAAG,cAAc,CAGnC,CAAA"}
|
@@ -49,7 +49,6 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
49
49
|
idleTimeToLive: "5 minutes"
|
50
50
|
});
|
51
51
|
const clockClient = yield* ClockEntity.client;
|
52
|
-
const deferredClient = yield* DeferredEntity.client;
|
53
52
|
const requestIdFor = Effect.fnUntraced(function* (options) {
|
54
53
|
const shardGroup = Context.get(options.workflow.annotations, ClusterSchema.ShardGroup)(options.executionId);
|
55
54
|
const entityId = EntityId.make(options.executionId);
|
@@ -100,6 +99,18 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
100
99
|
});
|
101
100
|
yield* storage.clearAddress(clockAddress);
|
102
101
|
});
|
102
|
+
const resume = Effect.fnUntraced(function* (workflow, executionId) {
|
103
|
+
const maybeReply = yield* requestReply({
|
104
|
+
workflow,
|
105
|
+
entityType: `Workflow/${workflow.name}`,
|
106
|
+
executionId,
|
107
|
+
tag: "run",
|
108
|
+
id: ""
|
109
|
+
});
|
110
|
+
const maybeSuspended = Option.filter(maybeReply, reply => reply.exit._tag === "Success" && reply.exit.value._tag === "Suspended");
|
111
|
+
if (Option.isNone(maybeSuspended)) return;
|
112
|
+
yield* sharding.reset(Snowflake.Snowflake(maybeSuspended.value.requestId));
|
113
|
+
});
|
103
114
|
return WorkflowEngine.of({
|
104
115
|
register(workflow, execute) {
|
105
116
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
@@ -156,7 +167,11 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
156
167
|
return yield* entry.activity.executeEncoded.pipe(Workflow.intoResult, Effect.provide(Context.unsafeMake(contextMap)), Effect.ensuring(Effect.sync(() => {
|
157
168
|
activities.delete(activityId);
|
158
169
|
})));
|
159
|
-
}, Rpc.fork)
|
170
|
+
}, Rpc.fork),
|
171
|
+
deferred: Effect.fnUntraced(function* (request) {
|
172
|
+
yield* ensureSuccess(resume(workflow, executionId));
|
173
|
+
return request.payload.exit;
|
174
|
+
})
|
160
175
|
};
|
161
176
|
}));
|
162
177
|
});
|
@@ -170,17 +185,13 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
170
185
|
discard
|
171
186
|
})), Effect.orDie, Effect.scoped),
|
172
187
|
interrupt: Effect.fnUntraced(function* (workflow, executionId) {
|
173
|
-
const
|
188
|
+
const reply = yield* requestReply({
|
174
189
|
workflow,
|
175
190
|
entityType: `Workflow/${workflow.name}`,
|
176
191
|
executionId,
|
177
192
|
tag: "run",
|
178
193
|
id: ""
|
179
194
|
});
|
180
|
-
if (Option.isNone(requestId)) {
|
181
|
-
return;
|
182
|
-
}
|
183
|
-
const reply = yield* replyForRequestId(requestId.value);
|
184
195
|
const nonSuspendedReply = reply.pipe(Option.filter(reply => reply.exit._tag !== "Success" || reply.exit.value._tag !== "Suspended"));
|
185
196
|
if (Option.isSome(nonSuspendedReply)) {
|
186
197
|
return;
|
@@ -199,26 +210,6 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
199
210
|
times: 3,
|
200
211
|
schedule: Schedule.exponential(250)
|
201
212
|
}), Effect.orDie),
|
202
|
-
resume: Effect.fnUntraced(function* (workflowName, executionId) {
|
203
|
-
const workflow = workflows.get(workflowName);
|
204
|
-
if (!workflow) {
|
205
|
-
return yield* Effect.dieMessage(`WorkflowEngine.resume: ${workflowName} not registered`);
|
206
|
-
}
|
207
|
-
const maybeReply = yield* requestReply({
|
208
|
-
workflow,
|
209
|
-
entityType: `Workflow/${workflowName}`,
|
210
|
-
executionId,
|
211
|
-
tag: "run",
|
212
|
-
id: ""
|
213
|
-
});
|
214
|
-
const maybeSuspended = Option.filter(maybeReply, reply => reply.exit._tag === "Success" && reply.exit.value._tag === "Suspended");
|
215
|
-
if (Option.isNone(maybeSuspended)) return;
|
216
|
-
yield* sharding.reset(Snowflake.Snowflake(maybeSuspended.value.requestId));
|
217
|
-
}, Effect.retry({
|
218
|
-
while: e => e._tag === "PersistenceError",
|
219
|
-
times: 3,
|
220
|
-
schedule: Schedule.exponential(250)
|
221
|
-
}), Effect.orDie),
|
222
213
|
activityExecute: Effect.fnUntraced(function* ({
|
223
214
|
activity,
|
224
215
|
attempt
|
@@ -258,28 +249,27 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
258
249
|
}, Effect.scoped),
|
259
250
|
deferredResult: deferred => WorkflowInstance.pipe(Effect.flatMap(instance => requestReply({
|
260
251
|
workflow: instance.workflow,
|
261
|
-
entityType:
|
252
|
+
entityType: `Workflow/${instance.workflow.name}`,
|
262
253
|
executionId: instance.executionId,
|
263
|
-
tag: "
|
254
|
+
tag: "deferred",
|
264
255
|
id: deferred.name
|
265
256
|
})), Effect.map(Option.map(reply => reply.exit)), Effect.retry({
|
266
257
|
while: e => e._tag === "PersistenceError",
|
267
258
|
times: 3,
|
268
259
|
schedule: Schedule.exponential(250)
|
269
260
|
}), Effect.orDie),
|
270
|
-
deferredDone({
|
261
|
+
deferredDone: Effect.fnUntraced(function* ({
|
271
262
|
deferred,
|
272
263
|
executionId,
|
273
264
|
exit,
|
274
265
|
workflowName
|
275
266
|
}) {
|
276
|
-
const client =
|
277
|
-
return Effect.orDie(client.
|
278
|
-
workflowName,
|
267
|
+
const client = yield* RcMap.get(clients, workflowName);
|
268
|
+
return yield* Effect.orDie(client(executionId).deferred({
|
279
269
|
name: deferred.name,
|
280
270
|
exit
|
281
271
|
}));
|
282
|
-
},
|
272
|
+
}, Effect.scoped),
|
283
273
|
scheduleClock(options) {
|
284
274
|
const client = clockClient(options.executionId);
|
285
275
|
return DateTime.now.pipe(Effect.flatMap(now => client.run({
|
@@ -303,11 +293,11 @@ const ActivityRpc = /*#__PURE__*/Rpc.make("activity", {
|
|
303
293
|
attempt,
|
304
294
|
name
|
305
295
|
}) => activityPrimaryKey(name, attempt),
|
306
|
-
success:
|
296
|
+
success: Workflow.Result({
|
307
297
|
success: Schema.Unknown,
|
308
298
|
error: Schema.Unknown
|
309
299
|
})
|
310
|
-
});
|
300
|
+
}).annotate(ClusterSchema.Persisted, true);
|
311
301
|
const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`, [Rpc.make("run", {
|
312
302
|
payload: workflow.payloadSchema.fields,
|
313
303
|
primaryKey: () => "",
|
@@ -315,16 +305,8 @@ const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`,
|
|
315
305
|
success: workflow.successSchema,
|
316
306
|
error: workflow.errorSchema
|
317
307
|
})
|
318
|
-
})
|
319
|
-
const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
|
320
|
-
const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
|
321
|
-
success: Schema.Unknown,
|
322
|
-
failure: Schema.Unknown,
|
323
|
-
defect: Schema.Defect
|
324
|
-
}));
|
325
|
-
const DeferredEntity = /*#__PURE__*/Entity.make("Workflow/-/DurableDeferred", [Rpc.make("set", {
|
308
|
+
}).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), Rpc.make("deferred", {
|
326
309
|
payload: {
|
327
|
-
workflowName: Schema.String,
|
328
310
|
name: Schema.String,
|
329
311
|
exit: ExitUnknown
|
330
312
|
},
|
@@ -332,26 +314,12 @@ const DeferredEntity = /*#__PURE__*/Entity.make("Workflow/-/DurableDeferred", [R
|
|
332
314
|
name
|
333
315
|
}) => name,
|
334
316
|
success: ExitUnknown
|
335
|
-
}),
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
name
|
342
|
-
}) => name
|
343
|
-
})]).annotateRpcs(ClusterSchema.Persisted, true).annotateRpcs(ClusterSchema.Uninterruptible, true);
|
344
|
-
const DeferredEntityLayer = /*#__PURE__*/DeferredEntity.toLayer(/*#__PURE__*/Effect.gen(function* () {
|
345
|
-
const engine = yield* WorkflowEngine;
|
346
|
-
const address = yield* Entity.CurrentAddress;
|
347
|
-
const executionId = address.entityId;
|
348
|
-
const client = (yield* DeferredEntity.client)(executionId);
|
349
|
-
return {
|
350
|
-
set: request => Effect.as(ensureSuccess(client.resume(request.payload, {
|
351
|
-
discard: true
|
352
|
-
})), request.payload.exit),
|
353
|
-
resume: request => engine.resume(request.payload.workflowName, executionId)
|
354
|
-
};
|
317
|
+
}).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), ActivityRpc]).annotateContext(workflow.annotations);
|
318
|
+
const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
|
319
|
+
const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
|
320
|
+
success: Schema.Unknown,
|
321
|
+
failure: Schema.Unknown,
|
322
|
+
defect: Schema.Defect
|
355
323
|
}));
|
356
324
|
class ClockPayload extends /*#__PURE__*/Schema.Class(`Workflow/DurableClock/Run`)({
|
357
325
|
name: Schema.String,
|
@@ -395,5 +363,5 @@ const InterruptSignal = /*#__PURE__*/DurableDeferred.make("Workflow/InterruptSig
|
|
395
363
|
* @since 1.0.0
|
396
364
|
* @category Layers
|
397
365
|
*/
|
398
|
-
export const layer = /*#__PURE__*/
|
366
|
+
export const layer = /*#__PURE__*/ClockEntityLayer.pipe(/*#__PURE__*/Layer.provideMerge(/*#__PURE__*/Layer.scoped(WorkflowEngine, make)));
|
399
367
|
//# sourceMappingURL=ClusterWorkflowEngine.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","activities","activityLatches","clients","lookup","fnUntraced","workflowName","entity","get","dieMessage","client","idleTimeToLive","clockClient","ClockEntity","deferredClient","DeferredEntity","requestIdFor","options","shardGroup","workflow","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","name","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","of","register","execute","engine","suspend","has","makeWorkflowEntity","set","registerEntity","CurrentAddress","run","request","instance","suspended","payload","onExit","void","deferredResult","InterruptSignal","flatMap","maybeResult","zipRight","ignore","interrupt","scoped","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","context","unsafeMap","CurrentAttempt","key","executeEncoded","provide","unsafeMake","ensuring","sync","delete","fork","discard","nonSuspendedReply","exit","isSome","deferredDone","deferred","while","e","resume","maybeReply","maybeSuspended","activityExecute","release","result","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","ensureSuccess","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","payloadSchema","fields","successSchema","errorSchema","annotateContext","annotateRpcs","Persisted","Uninterruptible","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","DeferredEntityLayer","toLayer","as","ClockPayload","Class","DateTimeUtcFromNumber","symbol","annotate","ClockEntityLayer","zero","layer","merge","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","activities","activityLatches","clients","lookup","fnUntraced","workflowName","entity","get","dieMessage","client","idleTimeToLive","clockClient","ClockEntity","requestIdFor","options","shardGroup","workflow","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","name","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","of","register","execute","engine","suspend","has","makeWorkflowEntity","set","registerEntity","CurrentAddress","run","request","instance","suspended","payload","onExit","void","deferredResult","InterruptSignal","flatMap","maybeResult","zipRight","ignore","interrupt","scoped","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","context","unsafeMap","CurrentAttempt","key","executeEncoded","provide","unsafeMake","ensuring","sync","delete","fork","deferred","ensureSuccess","discard","nonSuspendedReply","isSome","deferredDone","while","e","activityExecute","release","result","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","payloadSchema","fields","successSchema","errorSchema","Uninterruptible","ExitUnknown","annotateContext","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.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.38.
|
3
|
+
"version": "0.38.3",
|
4
4
|
"description": "Unified interfaces for common cluster-specific services",
|
5
5
|
"license": "MIT",
|
6
6
|
"repository": {
|
@@ -13,7 +13,7 @@
|
|
13
13
|
"peerDependencies": {
|
14
14
|
"@effect/platform": "^0.84.6",
|
15
15
|
"@effect/rpc": "^0.61.6",
|
16
|
-
"@effect/sql": "^0.37.
|
16
|
+
"@effect/sql": "^0.37.7",
|
17
17
|
"@effect/workflow": "^0.1.3",
|
18
18
|
"effect": "^3.16.3"
|
19
19
|
},
|
@@ -42,6 +42,7 @@ export const make = Effect.gen(function*() {
|
|
42
42
|
string,
|
43
43
|
Entity.Entity<
|
44
44
|
| Rpc.Rpc<"run", Schema.Struct<{}>, Schema.Schema<Workflow.Result<any, any>>>
|
45
|
+
| Rpc.Rpc<"deferred", Schema.Struct<{ name: typeof Schema.String; exit: typeof ExitUnknown }>, typeof ExitUnknown>
|
45
46
|
| Rpc.Rpc<
|
46
47
|
"activity",
|
47
48
|
Schema.Struct<{ name: typeof Schema.String; attempt: typeof Schema.Number }>,
|
@@ -65,7 +66,6 @@ export const make = Effect.gen(function*() {
|
|
65
66
|
idleTimeToLive: "5 minutes"
|
66
67
|
})
|
67
68
|
const clockClient = yield* ClockEntity.client
|
68
|
-
const deferredClient = yield* DeferredEntity.client
|
69
69
|
|
70
70
|
const requestIdFor = Effect.fnUntraced(function*(options: {
|
71
71
|
readonly workflow: Workflow.Any
|
@@ -151,6 +151,22 @@ export const make = Effect.gen(function*() {
|
|
151
151
|
yield* storage.clearAddress(clockAddress)
|
152
152
|
})
|
153
153
|
|
154
|
+
const resume = Effect.fnUntraced(function*(workflow: Workflow.Any, executionId: string) {
|
155
|
+
const maybeReply = yield* requestReply({
|
156
|
+
workflow,
|
157
|
+
entityType: `Workflow/${workflow.name}`,
|
158
|
+
executionId,
|
159
|
+
tag: "run",
|
160
|
+
id: ""
|
161
|
+
})
|
162
|
+
const maybeSuspended = Option.filter(
|
163
|
+
maybeReply,
|
164
|
+
(reply) => reply.exit._tag === "Success" && reply.exit.value._tag === "Suspended"
|
165
|
+
)
|
166
|
+
if (Option.isNone(maybeSuspended)) return
|
167
|
+
yield* sharding.reset(Snowflake.Snowflake(maybeSuspended.value.requestId))
|
168
|
+
})
|
169
|
+
|
154
170
|
return WorkflowEngine.of({
|
155
171
|
register(workflow, execute) {
|
156
172
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
@@ -198,6 +214,7 @@ export const make = Effect.gen(function*() {
|
|
198
214
|
Effect.provideService(WorkflowInstance, instance)
|
199
215
|
) as any
|
200
216
|
},
|
217
|
+
|
201
218
|
activity: Effect.fnUntraced(function*(request: Entity.Request<any>) {
|
202
219
|
const activityId = `${executionId}/${request.payload.name}`
|
203
220
|
let entry = activities.get(activityId)
|
@@ -224,7 +241,12 @@ export const make = Effect.gen(function*() {
|
|
224
241
|
activities.delete(activityId)
|
225
242
|
}))
|
226
243
|
)
|
227
|
-
}, Rpc.fork)
|
244
|
+
}, Rpc.fork),
|
245
|
+
|
246
|
+
deferred: Effect.fnUntraced(function*(request: Entity.Request<any>) {
|
247
|
+
yield* ensureSuccess(resume(workflow, executionId))
|
248
|
+
return request.payload.exit
|
249
|
+
})
|
228
250
|
}
|
229
251
|
})
|
230
252
|
) as Effect.Effect<void>
|
@@ -240,17 +262,13 @@ export const make = Effect.gen(function*() {
|
|
240
262
|
|
241
263
|
interrupt: Effect.fnUntraced(
|
242
264
|
function*(this: WorkflowEngine["Type"], workflow, executionId) {
|
243
|
-
const
|
265
|
+
const reply = yield* requestReply({
|
244
266
|
workflow,
|
245
267
|
entityType: `Workflow/${workflow.name}`,
|
246
268
|
executionId,
|
247
269
|
tag: "run",
|
248
270
|
id: ""
|
249
271
|
})
|
250
|
-
if (Option.isNone(requestId)) {
|
251
|
-
return
|
252
|
-
}
|
253
|
-
const reply = yield* replyForRequestId(requestId.value)
|
254
272
|
const nonSuspendedReply = reply.pipe(
|
255
273
|
Option.filter((reply) => reply.exit._tag !== "Success" || reply.exit.value._tag !== "Suspended")
|
256
274
|
)
|
@@ -273,34 +291,6 @@ export const make = Effect.gen(function*() {
|
|
273
291
|
Effect.orDie
|
274
292
|
),
|
275
293
|
|
276
|
-
resume: Effect.fnUntraced(
|
277
|
-
function*(workflowName: string, executionId: string) {
|
278
|
-
const workflow = workflows.get(workflowName)
|
279
|
-
if (!workflow) {
|
280
|
-
return yield* Effect.dieMessage(`WorkflowEngine.resume: ${workflowName} not registered`)
|
281
|
-
}
|
282
|
-
const maybeReply = yield* requestReply({
|
283
|
-
workflow,
|
284
|
-
entityType: `Workflow/${workflowName}`,
|
285
|
-
executionId,
|
286
|
-
tag: "run",
|
287
|
-
id: ""
|
288
|
-
})
|
289
|
-
const maybeSuspended = Option.filter(
|
290
|
-
maybeReply,
|
291
|
-
(reply) => reply.exit._tag === "Success" && reply.exit.value._tag === "Suspended"
|
292
|
-
)
|
293
|
-
if (Option.isNone(maybeSuspended)) return
|
294
|
-
yield* sharding.reset(Snowflake.Snowflake(maybeSuspended.value.requestId))
|
295
|
-
},
|
296
|
-
Effect.retry({
|
297
|
-
while: (e) => e._tag === "PersistenceError",
|
298
|
-
times: 3,
|
299
|
-
schedule: Schedule.exponential(250)
|
300
|
-
}),
|
301
|
-
Effect.orDie
|
302
|
-
),
|
303
|
-
|
304
294
|
activityExecute: Effect.fnUntraced(function*({ activity, attempt }) {
|
305
295
|
const context = yield* Effect.context<WorkflowInstance>()
|
306
296
|
const instance = Context.get(context, WorkflowInstance)
|
@@ -335,9 +325,9 @@ export const make = Effect.gen(function*() {
|
|
335
325
|
Effect.flatMap((instance) =>
|
336
326
|
requestReply({
|
337
327
|
workflow: instance.workflow,
|
338
|
-
entityType:
|
328
|
+
entityType: `Workflow/${instance.workflow.name}`,
|
339
329
|
executionId: instance.executionId,
|
340
|
-
tag: "
|
330
|
+
tag: "deferred",
|
341
331
|
id: deferred.name
|
342
332
|
})
|
343
333
|
),
|
@@ -350,14 +340,15 @@ export const make = Effect.gen(function*() {
|
|
350
340
|
Effect.orDie
|
351
341
|
),
|
352
342
|
|
353
|
-
deferredDone({ deferred, executionId, exit, workflowName }) {
|
354
|
-
const client =
|
355
|
-
return Effect.orDie(
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
343
|
+
deferredDone: Effect.fnUntraced(function*({ deferred, executionId, exit, workflowName }) {
|
344
|
+
const client = yield* RcMap.get(clients, workflowName)
|
345
|
+
return yield* Effect.orDie(
|
346
|
+
client(executionId).deferred({
|
347
|
+
name: deferred.name,
|
348
|
+
exit
|
349
|
+
})
|
350
|
+
)
|
351
|
+
}, Effect.scoped),
|
361
352
|
|
362
353
|
scheduleClock(options) {
|
363
354
|
const client = clockClient(options.executionId)
|
@@ -396,7 +387,7 @@ const ActivityRpc = Rpc.make("activity", {
|
|
396
387
|
success: Schema.Unknown,
|
397
388
|
error: Schema.Unknown
|
398
389
|
})
|
399
|
-
})
|
390
|
+
}).annotate(ClusterSchema.Persisted, true)
|
400
391
|
|
401
392
|
const makeWorkflowEntity = (workflow: Workflow.Any) =>
|
402
393
|
Entity.make(`Workflow/${workflow.name}`, [
|
@@ -407,12 +398,23 @@ const makeWorkflowEntity = (workflow: Workflow.Any) =>
|
|
407
398
|
success: workflow.successSchema,
|
408
399
|
error: workflow.errorSchema
|
409
400
|
})
|
410
|
-
})
|
401
|
+
})
|
402
|
+
.annotate(ClusterSchema.Persisted, true)
|
403
|
+
.annotate(ClusterSchema.Uninterruptible, true),
|
404
|
+
|
405
|
+
Rpc.make("deferred", {
|
406
|
+
payload: {
|
407
|
+
name: Schema.String,
|
408
|
+
exit: ExitUnknown
|
409
|
+
},
|
410
|
+
primaryKey: ({ name }) => name,
|
411
|
+
success: ExitUnknown
|
412
|
+
})
|
413
|
+
.annotate(ClusterSchema.Persisted, true)
|
414
|
+
.annotate(ClusterSchema.Uninterruptible, true),
|
415
|
+
|
411
416
|
ActivityRpc
|
412
|
-
])
|
413
|
-
.annotateContext(workflow.annotations)
|
414
|
-
.annotateRpcs(ClusterSchema.Persisted, true)
|
415
|
-
.annotateRpcs(ClusterSchema.Uninterruptible, true)
|
417
|
+
]).annotateContext(workflow.annotations)
|
416
418
|
|
417
419
|
const activityPrimaryKey = (activity: string, attempt: number) => `${activity}/${attempt}`
|
418
420
|
|
@@ -422,42 +424,6 @@ const ExitUnknown = Schema.encodedSchema(Schema.Exit({
|
|
422
424
|
defect: Schema.Defect
|
423
425
|
}))
|
424
426
|
|
425
|
-
const DeferredEntity = Entity.make("Workflow/-/DurableDeferred", [
|
426
|
-
Rpc.make("set", {
|
427
|
-
payload: {
|
428
|
-
workflowName: Schema.String,
|
429
|
-
name: Schema.String,
|
430
|
-
exit: ExitUnknown
|
431
|
-
},
|
432
|
-
primaryKey: ({ name }) => name,
|
433
|
-
success: ExitUnknown
|
434
|
-
}),
|
435
|
-
Rpc.make("resume", {
|
436
|
-
payload: {
|
437
|
-
workflowName: Schema.String,
|
438
|
-
name: Schema.String
|
439
|
-
},
|
440
|
-
primaryKey: ({ name }) => name
|
441
|
-
})
|
442
|
-
])
|
443
|
-
.annotateRpcs(ClusterSchema.Persisted, true)
|
444
|
-
.annotateRpcs(ClusterSchema.Uninterruptible, true)
|
445
|
-
|
446
|
-
const DeferredEntityLayer = DeferredEntity.toLayer(Effect.gen(function*() {
|
447
|
-
const engine = yield* WorkflowEngine
|
448
|
-
const address = yield* Entity.CurrentAddress
|
449
|
-
const executionId = address.entityId
|
450
|
-
const client = (yield* DeferredEntity.client)(executionId)
|
451
|
-
return {
|
452
|
-
set: (request) =>
|
453
|
-
Effect.as(
|
454
|
-
ensureSuccess(client.resume(request.payload, { discard: true })),
|
455
|
-
request.payload.exit
|
456
|
-
),
|
457
|
-
resume: (request) => engine.resume(request.payload.workflowName, executionId)
|
458
|
-
}
|
459
|
-
}))
|
460
|
-
|
461
427
|
class ClockPayload extends Schema.Class<ClockPayload>(`Workflow/DurableClock/Run`)({
|
462
428
|
name: Schema.String,
|
463
429
|
workflowName: Schema.String,
|
@@ -504,7 +470,6 @@ export const layer: Layer.Layer<
|
|
504
470
|
WorkflowEngine,
|
505
471
|
never,
|
506
472
|
Sharding.Sharding | MessageStorage
|
507
|
-
> =
|
508
|
-
Layer.merge(ClockEntityLayer),
|
473
|
+
> = ClockEntityLayer.pipe(
|
509
474
|
Layer.provideMerge(Layer.scoped(WorkflowEngine, make))
|
510
475
|
)
|