@effect/workflow 0.12.5 → 0.13.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.
Files changed (49) hide show
  1. package/DurableQueue/package.json +6 -0
  2. package/dist/cjs/Activity.js +2 -6
  3. package/dist/cjs/Activity.js.map +1 -1
  4. package/dist/cjs/DurableClock.js +1 -2
  5. package/dist/cjs/DurableClock.js.map +1 -1
  6. package/dist/cjs/DurableDeferred.js +16 -18
  7. package/dist/cjs/DurableDeferred.js.map +1 -1
  8. package/dist/cjs/DurableQueue.js +186 -0
  9. package/dist/cjs/DurableQueue.js.map +1 -0
  10. package/dist/cjs/Workflow.js +8 -53
  11. package/dist/cjs/Workflow.js.map +1 -1
  12. package/dist/cjs/WorkflowEngine.js +234 -3
  13. package/dist/cjs/WorkflowEngine.js.map +1 -1
  14. package/dist/cjs/index.js +3 -1
  15. package/dist/dts/Activity.d.ts +1 -0
  16. package/dist/dts/Activity.d.ts.map +1 -1
  17. package/dist/dts/DurableClock.d.ts.map +1 -1
  18. package/dist/dts/DurableDeferred.d.ts +2 -2
  19. package/dist/dts/DurableDeferred.d.ts.map +1 -1
  20. package/dist/dts/DurableQueue.d.ts +116 -0
  21. package/dist/dts/DurableQueue.d.ts.map +1 -0
  22. package/dist/dts/Workflow.d.ts +2 -2
  23. package/dist/dts/Workflow.d.ts.map +1 -1
  24. package/dist/dts/WorkflowEngine.d.ts +59 -30
  25. package/dist/dts/WorkflowEngine.d.ts.map +1 -1
  26. package/dist/dts/index.d.ts +4 -0
  27. package/dist/dts/index.d.ts.map +1 -1
  28. package/dist/esm/Activity.js +2 -6
  29. package/dist/esm/Activity.js.map +1 -1
  30. package/dist/esm/DurableClock.js +1 -2
  31. package/dist/esm/DurableClock.js.map +1 -1
  32. package/dist/esm/DurableDeferred.js +16 -18
  33. package/dist/esm/DurableDeferred.js.map +1 -1
  34. package/dist/esm/DurableQueue.js +176 -0
  35. package/dist/esm/DurableQueue.js.map +1 -0
  36. package/dist/esm/Workflow.js +7 -52
  37. package/dist/esm/Workflow.js.map +1 -1
  38. package/dist/esm/WorkflowEngine.js +232 -2
  39. package/dist/esm/WorkflowEngine.js.map +1 -1
  40. package/dist/esm/index.js +4 -0
  41. package/dist/esm/index.js.map +1 -1
  42. package/package.json +13 -5
  43. package/src/Activity.ts +3 -8
  44. package/src/DurableClock.ts +1 -2
  45. package/src/DurableDeferred.ts +24 -30
  46. package/src/DurableQueue.ts +332 -0
  47. package/src/Workflow.ts +9 -61
  48. package/src/WorkflowEngine.ts +509 -44
  49. package/src/index.ts +5 -0
@@ -12,7 +12,6 @@ import * as Layer from "effect/Layer";
12
12
  import * as Option from "effect/Option";
13
13
  import * as Predicate from "effect/Predicate";
14
14
  import * as PrimaryKey from "effect/PrimaryKey";
15
- import * as Schedule from "effect/Schedule";
16
15
  import * as Schema from "effect/Schema";
17
16
  import { makeHashDigest } from "./internal/crypto.js";
18
17
  /**
@@ -27,7 +26,6 @@ const InstanceTag = /*#__PURE__*/Context.GenericTag("@effect/workflow/WorkflowEn
27
26
  * @category Constructors
28
27
  */
29
28
  export const make = options => {
30
- const suspendedRetrySchedule = options.suspendedRetrySchedule ?? defaultRetrySchedule;
31
29
  const makeExecutionId = payload => makeHashDigest(`${options.name}-${options.idempotencyKey(payload)}`);
32
30
  const self = {
33
31
  [TypeId]: TypeId,
@@ -55,58 +53,18 @@ export const make = options => {
55
53
  yield* Effect.annotateCurrentSpan({
56
54
  executionId
57
55
  });
58
- const parentInstance = yield* Effect.serviceOption(InstanceTag);
59
- let result;
60
- if (Option.isSome(parentInstance)) {
61
- const instance = parentInstance.value;
62
- yield* Effect.addFinalizer(() => {
63
- if (!instance.interrupted || result?._tag === "Complete") {
64
- return Effect.void;
65
- }
66
- return engine.interrupt(self, executionId);
67
- });
68
- }
69
- if (opts?.discard) {
70
- yield* engine.execute({
71
- workflow: self,
72
- executionId,
73
- payload,
74
- discard: true
75
- });
76
- return executionId;
77
- }
78
- const run = engine.execute({
79
- workflow: self,
56
+ return yield* engine.execute(self, {
80
57
  executionId,
81
58
  payload,
82
- discard: false,
83
- parent: Option.getOrUndefined(parentInstance)
59
+ discard: opts?.discard,
60
+ suspendedRetrySchedule: options.suspendedRetrySchedule
84
61
  });
85
- if (Option.isSome(parentInstance)) {
86
- result = yield* run;
87
- if (result._tag === "Suspended") {
88
- return yield* suspend(parentInstance.value);
89
- }
90
- return yield* result.exit;
91
- }
92
- let sleep;
93
- while (true) {
94
- result = yield* run;
95
- if (result._tag === "Complete") {
96
- return yield* result.exit;
97
- }
98
- sleep ??= (yield* Schedule.driver(suspendedRetrySchedule)).next(void 0).pipe(Effect.catchAll(() => Effect.dieMessage(`${options.name}.execute: suspendedRetrySchedule exhausted`)));
99
- yield* sleep;
100
- }
101
62
  }, Effect.withSpan(`${options.name}.execute`, {
102
63
  captureStackTrace: false
103
64
  })),
104
65
  poll: Effect.fnUntraced(function* (executionId) {
105
66
  const engine = yield* EngineTag;
106
- return yield* engine.poll({
107
- workflow: self,
108
- executionId
109
- });
67
+ return yield* engine.poll(self, executionId);
110
68
  }, (effect, executionId) => Effect.withSpan(effect, `${options.name}.poll`, {
111
69
  captureStackTrace: false,
112
70
  attributes: {
@@ -131,18 +89,15 @@ export const make = options => {
131
89
  executionId
132
90
  }
133
91
  })),
134
- toLayer: execute => Layer.scopedContext(Effect.gen(function* () {
135
- const context = yield* Effect.context();
136
- const engine = Context.get(context, EngineTag);
137
- yield* engine.register(self, (payload, executionId) => Effect.suspend(() => execute(payload, executionId)).pipe(Effect.mapInputContext(input => Context.merge(context, input))));
138
- return EngineTag.context(engine);
92
+ toLayer: execute => Layer.scopedDiscard(Effect.gen(function* () {
93
+ const engine = yield* EngineTag;
94
+ return yield* engine.register(self, execute);
139
95
  })),
140
96
  executionId: payload => makeExecutionId(self.payloadSchema.make(payload)),
141
97
  withCompensation
142
98
  };
143
99
  return self;
144
100
  };
145
- const defaultRetrySchedule = /*#__PURE__*/Schedule.exponential(200, 1.5).pipe(/*#__PURE__*/Schedule.union(/*#__PURE__*/Schedule.spaced(30000)));
146
101
  /**
147
102
  * @since 1.0.0
148
103
  * @category Constructors
@@ -1 +1 @@
1
- {"version":3,"file":"Workflow.js","names":["Cause","Context","Data","Effect","Exit","Fiber","constFalse","constTrue","dual","identity","Layer","Option","Predicate","PrimaryKey","Schedule","Schema","makeHashDigest","TypeId","Symbol","for","EngineTag","GenericTag","InstanceTag","make","options","suspendedRetrySchedule","defaultRetrySchedule","makeExecutionId","payload","name","idempotencyKey","self","payloadSchema","isSchema","Struct","successSchema","success","Void","errorSchema","error","Never","annotations","empty","annotate","tag","value","add","annotateContext","context","merge","execute","fnUntraced","fields","opts","engine","executionId","annotateCurrentSpan","parentInstance","serviceOption","result","isSome","instance","addFinalizer","interrupted","_tag","void","interrupt","discard","workflow","run","parent","getOrUndefined","suspend","exit","sleep","driver","next","pipe","catchAll","dieMessage","withSpan","captureStackTrace","poll","effect","attributes","resume","toLayer","scopedContext","gen","get","register","mapInputContext","input","withCompensation","exponential","union","spaced","fromTaggedRequest","schema","failure","ResultTypeId","isResult","u","hasProperty","Complete","TaggedClass","SchemaFromSelf","_options","declare","SchemaEncoded","defect","Defect","transform","decode","fromA","encode","toI","Suspended","cause","optional","Result","Union","intoResult","contextWithEffect","captureDefects","CaptureDefects","suspendOnFailure","SuspendOnFailure","fork","flatMap","fiber","onInterrupt","join","interruptible","catchAllCause","suspended","isInterruptedOnly","die","squash","scoped","matchCauseEffect","onSuccess","succeed","onFailure","isDie","failCause","uninterruptible","wrapActivityResult","isSuspend","state","activityState","count","latch","await","andThen","yieldNow","unsafeClose","onExit","isSuspended","isSuccess","sequential","open","compensation","uninterruptibleMask","restore","tap","async","getOrThrow","getCurrentFiber","unsafeInterruptAsFork","id","Reference","defaultValue"],"sources":["../../src/Workflow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Workflow.js","names":["Cause","Context","Data","Effect","Exit","Fiber","constFalse","constTrue","dual","identity","Layer","Option","Predicate","PrimaryKey","Schema","makeHashDigest","TypeId","Symbol","for","EngineTag","GenericTag","InstanceTag","make","options","makeExecutionId","payload","name","idempotencyKey","self","payloadSchema","isSchema","Struct","successSchema","success","Void","errorSchema","error","Never","annotations","empty","annotate","tag","value","add","annotateContext","context","merge","execute","fnUntraced","fields","opts","engine","executionId","annotateCurrentSpan","discard","suspendedRetrySchedule","withSpan","captureStackTrace","poll","effect","attributes","interrupt","resume","toLayer","scopedDiscard","gen","register","withCompensation","fromTaggedRequest","schema","_tag","failure","ResultTypeId","isResult","u","hasProperty","Complete","TaggedClass","SchemaFromSelf","_options","declare","SchemaEncoded","exit","defect","Defect","transform","decode","fromA","encode","toI","Suspended","cause","optional","Result","Union","intoResult","contextWithEffect","instance","get","captureDefects","workflow","CaptureDefects","suspendOnFailure","SuspendOnFailure","pipe","fork","flatMap","fiber","onInterrupt","join","interruptible","catchAllCause","suspended","isInterruptedOnly","die","squash","scoped","matchCauseEffect","onSuccess","succeed","onFailure","interrupted","isDie","failCause","uninterruptible","wrapActivityResult","isSuspend","state","activityState","count","latch","await","andThen","yieldNow","suspend","unsafeClose","onExit","isSuspended","isSuccess","sequential","open","void","compensation","uninterruptibleMask","restore","tap","addFinalizer","async","getOrThrow","getCurrentFiber","unsafeInterruptAsFork","id","Reference","defaultValue"],"sources":["../../src/Workflow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,20 @@
1
1
  import * as Context from "effect/Context";
2
2
  import * as Effect from "effect/Effect";
3
+ import * as Exit from "effect/Exit";
4
+ import * as Fiber from "effect/Fiber";
5
+ import * as FiberMap from "effect/FiberMap";
6
+ import * as Layer from "effect/Layer";
7
+ import * as Option from "effect/Option";
8
+ import * as Schedule from "effect/Schedule";
9
+ import * as Schema from "effect/Schema";
10
+ import * as Workflow from "./Workflow.js";
3
11
  /**
4
- * @since 1.0.0
12
+ * @since 4.0.0
5
13
  * @category Services
6
14
  */
7
15
  export class WorkflowEngine extends /*#__PURE__*/Context.Tag("@effect/workflow/WorkflowEngine")() {}
8
16
  /**
9
- * @since 1.0.0
17
+ * @since 4.0.0
10
18
  * @category Services
11
19
  */
12
20
  export class WorkflowInstance extends /*#__PURE__*/Context.Tag("@effect/workflow/WorkflowEngine/WorkflowInstance")() {
@@ -24,4 +32,226 @@ export class WorkflowInstance extends /*#__PURE__*/Context.Tag("@effect/workflow
24
32
  });
25
33
  }
26
34
  }
35
+ /**
36
+ * @since 4.0.0
37
+ * @category Constructors
38
+ */
39
+ export const makeUnsafe = options => WorkflowEngine.of({
40
+ register: Effect.fnUntraced(function* (workflow, execute) {
41
+ const context = yield* Effect.context();
42
+ yield* options.register(workflow, (payload, executionId) => Effect.suspend(() => execute(payload, executionId)).pipe(Effect.mapInputContext(input => Context.merge(context, input))));
43
+ }),
44
+ execute: Effect.fnUntraced(function* (self, opts) {
45
+ const payload = opts.payload;
46
+ const executionId = opts.executionId;
47
+ const suspendedRetrySchedule = opts.suspendedRetrySchedule ?? defaultRetrySchedule;
48
+ yield* Effect.annotateCurrentSpan({
49
+ executionId
50
+ });
51
+ let result;
52
+ // link interruption with parent workflow
53
+ const parentInstance = yield* Effect.serviceOption(WorkflowInstance);
54
+ if (Option.isSome(parentInstance)) {
55
+ const instance = parentInstance.value;
56
+ yield* Effect.addFinalizer(() => {
57
+ if (!instance.interrupted || result?._tag === "Complete") {
58
+ return Effect.void;
59
+ }
60
+ return options.interrupt(self, executionId);
61
+ });
62
+ }
63
+ if (opts.discard) {
64
+ yield* options.execute(self, {
65
+ executionId,
66
+ payload: payload,
67
+ discard: true
68
+ });
69
+ return executionId;
70
+ }
71
+ const run = options.execute(self, {
72
+ executionId,
73
+ payload: payload,
74
+ discard: false,
75
+ parent: Option.getOrUndefined(parentInstance)
76
+ });
77
+ if (Option.isSome(parentInstance)) {
78
+ result = yield* Workflow.wrapActivityResult(run, result => result._tag === "Suspended");
79
+ if (result._tag === "Suspended") {
80
+ return yield* Workflow.suspend(parentInstance.value);
81
+ }
82
+ return yield* result.exit;
83
+ }
84
+ let sleep;
85
+ while (true) {
86
+ result = yield* run;
87
+ if (result._tag === "Complete") {
88
+ return yield* result.exit;
89
+ }
90
+ sleep ??= (yield* Schedule.driver(suspendedRetrySchedule)).next(void 0).pipe(Effect.catchAll(() => Effect.dieMessage(`${self.name}.execute: suspendedRetrySchedule exhausted`)));
91
+ yield* sleep;
92
+ }
93
+ }),
94
+ poll: options.poll,
95
+ interrupt: options.interrupt,
96
+ resume: options.resume,
97
+ activityExecute: Effect.fnUntraced(function* (activity, attempt) {
98
+ const result = yield* options.activityExecute(activity, attempt);
99
+ if (result._tag === "Suspended") {
100
+ return result;
101
+ }
102
+ const exit = yield* Effect.orDie(Schema.decode(activity.exitSchema)(result.exit));
103
+ return new Workflow.Complete({
104
+ exit
105
+ });
106
+ }),
107
+ deferredResult: Effect.fnUntraced(function* (deferred) {
108
+ const instance = yield* WorkflowInstance;
109
+ yield* Effect.annotateCurrentSpan({
110
+ executionId: instance.executionId
111
+ });
112
+ const exit = yield* options.deferredResult(deferred);
113
+ if (exit === undefined) {
114
+ return exit;
115
+ }
116
+ return yield* Effect.orDie(Schema.decodeUnknown(deferred.exitSchema)(exit));
117
+ }),
118
+ deferredDone: Effect.fnUntraced(function* (deferred, opts) {
119
+ return yield* options.deferredDone({
120
+ workflowName: opts.workflowName,
121
+ executionId: opts.executionId,
122
+ deferredName: opts.deferredName,
123
+ exit: yield* Schema.encode(deferred.exitSchema)(opts.exit)
124
+ });
125
+ }),
126
+ scheduleClock: options.scheduleClock
127
+ });
128
+ const defaultRetrySchedule = /*#__PURE__*/Schedule.exponential(200, 1.5).pipe(/*#__PURE__*/Schedule.either(/*#__PURE__*/Schedule.spaced(30000)));
129
+ /**
130
+ * @since 1.0.0
131
+ * @category In-memory
132
+ */
133
+ export const layerMemory = /*#__PURE__*/Layer.scoped(WorkflowEngine, /*#__PURE__*/Effect.gen(function* () {
134
+ const scope = yield* Effect.scope;
135
+ const workflows = new Map();
136
+ const executions = new Map();
137
+ const activities = new Map();
138
+ const resume = Effect.fnUntraced(function* (executionId) {
139
+ const state = executions.get(executionId);
140
+ if (!state) return;
141
+ const exit = state.fiber?.unsafePoll();
142
+ if (exit && exit._tag === "Success" && exit.value._tag === "Complete") {
143
+ return;
144
+ } else if (state.fiber && !exit) {
145
+ return;
146
+ }
147
+ const entry = workflows.get(state.instance.workflow.name);
148
+ const instance = WorkflowInstance.initial(state.instance.workflow, state.instance.executionId);
149
+ instance.interrupted = state.instance.interrupted;
150
+ state.instance = instance;
151
+ state.fiber = yield* state.execute(state.payload, state.instance.executionId).pipe(Effect.onExit(() => {
152
+ if (!instance.interrupted) {
153
+ return Effect.void;
154
+ }
155
+ instance.suspended = false;
156
+ return Effect.withFiberRuntime(fiber => Effect.interruptible(Fiber.interrupt(fiber)));
157
+ }), Workflow.intoResult, Effect.provideService(WorkflowInstance, instance), Effect.provideService(WorkflowEngine, engine), Effect.tap(result => {
158
+ if (!state.parent || result._tag !== "Complete") {
159
+ return Effect.void;
160
+ }
161
+ return Effect.forkIn(resume(state.parent), scope);
162
+ }), Effect.forkIn(entry.scope));
163
+ });
164
+ const deferredResults = new Map();
165
+ const clocks = yield* FiberMap.make();
166
+ const engine = makeUnsafe({
167
+ register: Effect.fnUntraced(function* (workflow, execute) {
168
+ workflows.set(workflow.name, {
169
+ workflow,
170
+ execute,
171
+ scope: yield* Effect.scope
172
+ });
173
+ }),
174
+ execute: Effect.fnUntraced(function* (workflow, options) {
175
+ const entry = workflows.get(workflow.name);
176
+ if (!entry) {
177
+ return yield* Effect.die(`Workflow ${workflow.name} is not registered`);
178
+ }
179
+ let state = executions.get(options.executionId);
180
+ if (!state) {
181
+ state = {
182
+ payload: options.payload,
183
+ execute: entry.execute,
184
+ instance: WorkflowInstance.initial(workflow, options.executionId),
185
+ fiber: undefined,
186
+ parent: options.parent?.executionId
187
+ };
188
+ executions.set(options.executionId, state);
189
+ yield* resume(options.executionId);
190
+ }
191
+ if (options.discard) return;
192
+ return yield* Fiber.join(state.fiber);
193
+ }),
194
+ interrupt: Effect.fnUntraced(function* (_workflow, executionId) {
195
+ const state = executions.get(executionId);
196
+ if (!state) return;
197
+ state.instance.interrupted = true;
198
+ yield* resume(executionId);
199
+ }),
200
+ resume(_workflow, executionId) {
201
+ return resume(executionId);
202
+ },
203
+ activityExecute: Effect.fnUntraced(function* (activity, attempt) {
204
+ const instance = yield* WorkflowInstance;
205
+ const activityId = `${instance.executionId}/${activity.name}/${attempt}`;
206
+ let state = activities.get(activityId);
207
+ if (state) {
208
+ const exit = state.exit;
209
+ if (exit && exit._tag === "Success" && exit.value._tag === "Suspended") {
210
+ state.exit = undefined;
211
+ } else if (exit) {
212
+ return yield* exit;
213
+ }
214
+ } else {
215
+ state = {
216
+ exit: undefined
217
+ };
218
+ activities.set(activityId, state);
219
+ }
220
+ const activityInstance = WorkflowInstance.initial(instance.workflow, instance.executionId);
221
+ activityInstance.interrupted = instance.interrupted;
222
+ return yield* activity.executeEncoded.pipe(Workflow.intoResult, Effect.provideService(WorkflowInstance, activityInstance), Effect.onExit(exit => {
223
+ state.exit = exit;
224
+ return Effect.void;
225
+ }));
226
+ }),
227
+ poll: (_workflow, executionId) => Effect.suspend(() => {
228
+ const state = executions.get(executionId);
229
+ if (!state) {
230
+ return Effect.succeed(undefined);
231
+ }
232
+ const exit = state.fiber?.unsafePoll();
233
+ return exit ?? Effect.succeed(undefined);
234
+ }),
235
+ deferredResult: Effect.fnUntraced(function* (deferred) {
236
+ const instance = yield* WorkflowInstance;
237
+ const id = `${instance.executionId}/${deferred.name}`;
238
+ return deferredResults.get(id);
239
+ }),
240
+ deferredDone: options => Effect.suspend(() => {
241
+ const id = `${options.executionId}/${options.deferredName}`;
242
+ if (deferredResults.has(id)) return Effect.void;
243
+ deferredResults.set(id, options.exit);
244
+ return resume(options.executionId);
245
+ }),
246
+ scheduleClock: (workflow, options) => engine.deferredDone(options.clock.deferred, {
247
+ workflowName: workflow.name,
248
+ executionId: options.executionId,
249
+ deferredName: options.clock.deferred.name,
250
+ exit: Exit.void
251
+ }).pipe(Effect.delay(options.clock.duration), FiberMap.run(clocks, `${options.executionId}/${options.clock.name}`, {
252
+ onlyIfMissing: true
253
+ }), Effect.asVoid)
254
+ });
255
+ return engine;
256
+ }));
27
257
  //# sourceMappingURL=WorkflowEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowEngine.js","names":["Context","Effect","WorkflowEngine","Tag","WorkflowInstance","initial","workflow","executionId","of","suspended","interrupted","cause","undefined","activityState","count","latch","unsafeMakeLatch"],"sources":["../../src/WorkflowEngine.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AASvC;;;;AAIA,OAAM,MAAOC,cAAe,sBAAQF,OAAO,CAACG,GAAG,CAAC,iCAAiC,CAAC,EA+F/E;AAEH;;;;AAIA,OAAM,MAAOC,gBAAiB,sBAAQJ,OAAO,CAACG,GAAG,CAAC,kDAAkD,CAAC,EAkClG;EACD,OAAOE,OAAOA,CAACC,QAAsB,EAAEC,WAAmB;IACxD,OAAOH,gBAAgB,CAACI,EAAE,CAAC;MACzBD,WAAW;MACXD,QAAQ;MACRG,SAAS,EAAE,KAAK;MAChBC,WAAW,EAAE,KAAK;MAClBC,KAAK,EAAEC,SAAS;MAChBC,aAAa,EAAE;QACbC,KAAK,EAAE,CAAC;QACRC,KAAK,EAAEd,MAAM,CAACe,eAAe;;KAEhC,CAAC;EACJ","ignoreList":[]}
1
+ {"version":3,"file":"WorkflowEngine.js","names":["Context","Effect","Exit","Fiber","FiberMap","Layer","Option","Schedule","Schema","Workflow","WorkflowEngine","Tag","WorkflowInstance","initial","workflow","executionId","of","suspended","interrupted","cause","undefined","activityState","count","latch","unsafeMakeLatch","makeUnsafe","options","register","fnUntraced","execute","context","payload","suspend","pipe","mapInputContext","input","merge","self","opts","suspendedRetrySchedule","defaultRetrySchedule","annotateCurrentSpan","result","parentInstance","serviceOption","isSome","instance","value","addFinalizer","_tag","void","interrupt","discard","run","parent","getOrUndefined","wrapActivityResult","exit","sleep","driver","next","catchAll","dieMessage","name","poll","resume","activityExecute","activity","attempt","orDie","decode","exitSchema","Complete","deferredResult","deferred","decodeUnknown","deferredDone","workflowName","deferredName","encode","scheduleClock","exponential","either","spaced","layerMemory","scoped","gen","scope","workflows","Map","executions","activities","state","get","fiber","unsafePoll","entry","onExit","withFiberRuntime","interruptible","intoResult","provideService","engine","tap","forkIn","deferredResults","clocks","make","set","die","join","_workflow","activityId","activityInstance","executeEncoded","succeed","id","has","clock","delay","duration","onlyIfMissing","asVoid"],"sources":["../../src/WorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -10,6 +10,10 @@ export * as DurableClock from "./DurableClock.js";
10
10
  * @since 1.0.0
11
11
  */
12
12
  export * as DurableDeferred from "./DurableDeferred.js";
13
+ /**
14
+ * @since 1.0.0
15
+ */
16
+ export * as DurableQueue from "./DurableQueue.js";
13
17
  /**
14
18
  * @since 1.0.0
15
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Activity","DurableClock","DurableDeferred","DurableRateLimiter","Workflow","WorkflowEngine","WorkflowProxy","WorkflowProxyServer"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,mBAAmB,MAAM,0BAA0B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Activity","DurableClock","DurableDeferred","DurableQueue","DurableRateLimiter","Workflow","WorkflowEngine","WorkflowProxy","WorkflowProxyServer"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,mBAAmB,MAAM,0BAA0B","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/workflow",
3
- "version": "0.12.5",
3
+ "version": "0.13.1",
4
4
  "description": "Durable workflows for Effect",
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/experimental": "^0.57.1",
15
- "effect": "^3.19.3",
16
- "@effect/platform": "^0.93.2",
17
- "@effect/rpc": "^0.72.1"
14
+ "effect": "^3.19.8",
15
+ "@effect/experimental": "^0.57.7",
16
+ "@effect/platform": "^0.93.5",
17
+ "@effect/rpc": "^0.72.2"
18
18
  },
19
19
  "publishConfig": {
20
20
  "provenance": true
@@ -44,6 +44,11 @@
44
44
  "import": "./dist/esm/DurableDeferred.js",
45
45
  "default": "./dist/cjs/DurableDeferred.js"
46
46
  },
47
+ "./DurableQueue": {
48
+ "types": "./dist/dts/DurableQueue.d.ts",
49
+ "import": "./dist/esm/DurableQueue.js",
50
+ "default": "./dist/cjs/DurableQueue.js"
51
+ },
47
52
  "./DurableRateLimiter": {
48
53
  "types": "./dist/dts/DurableRateLimiter.d.ts",
49
54
  "import": "./dist/esm/DurableRateLimiter.js",
@@ -81,6 +86,9 @@
81
86
  "DurableDeferred": [
82
87
  "./dist/dts/DurableDeferred.d.ts"
83
88
  ],
89
+ "DurableQueue": [
90
+ "./dist/dts/DurableQueue.d.ts"
91
+ ],
84
92
  "DurableRateLimiter": [
85
93
  "./dist/dts/DurableRateLimiter.d.ts"
86
94
  ],
package/src/Activity.ts CHANGED
@@ -73,6 +73,7 @@ export interface Any {
73
73
  readonly name: string
74
74
  readonly successSchema: Schema.Schema.Any
75
75
  readonly errorSchema: Schema.Schema.All
76
+ readonly execute: Effect.Effect<any, any, any>
76
77
  readonly executeEncoded: Effect.Effect<any, any, any>
77
78
  }
78
79
 
@@ -228,19 +229,13 @@ const makeExecute = Effect.fnUntraced(function*<
228
229
  const attempt = yield* CurrentAttempt
229
230
  yield* Effect.annotateCurrentSpan({ executionId: instance.executionId })
230
231
  const result = yield* Workflow.wrapActivityResult(
231
- engine.activityExecute({
232
- activity,
233
- attempt
234
- }),
232
+ engine.activityExecute(activity, attempt),
235
233
  (_) => _._tag === "Suspended"
236
234
  )
237
235
  if (result._tag === "Suspended") {
238
236
  return yield* Workflow.suspend(instance)
239
237
  }
240
- const exit = yield* Effect.orDie(
241
- Schema.decode(activity.exitSchema)(result.exit)
242
- )
243
- return yield* exit
238
+ return yield* result.exit
244
239
  }, (effect, activity) =>
245
240
  Effect.withSpan(effect, activity.name, {
246
241
  captureStackTrace: false
@@ -98,8 +98,7 @@ export const sleep: (
98
98
  const engine = yield* EngineTag
99
99
  const instance = yield* InstanceTag
100
100
  const clock = make(options)
101
- yield* engine.scheduleClock({
102
- workflow: instance.workflow,
101
+ yield* engine.scheduleClock(instance.workflow, {
103
102
  executionId: instance.executionId,
104
103
  clock
105
104
  })