@etohq/workflow-engine-inmemory 1.3.0 → 1.5.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/LICENSE +21 -0
- package/dist/migrations/Migration20250128174331.d.ts +6 -0
- package/dist/migrations/Migration20250128174331.d.ts.map +1 -0
- package/dist/migrations/Migration20250128174331.js +24 -0
- package/dist/migrations/Migration20250128174331.js.map +1 -0
- package/dist/migrations/Migration20250505092459.d.ts +6 -0
- package/dist/migrations/Migration20250505092459.d.ts.map +1 -0
- package/dist/migrations/Migration20250505092459.js +40 -0
- package/dist/migrations/Migration20250505092459.js.map +1 -0
- package/dist/models/workflow-execution.d.ts +2 -0
- package/dist/models/workflow-execution.d.ts.map +1 -1
- package/dist/models/workflow-execution.js +7 -0
- package/dist/models/workflow-execution.js.map +1 -1
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/services/workflow-orchestrator.d.ts +14 -6
- package/dist/services/workflow-orchestrator.d.ts.map +1 -1
- package/dist/services/workflow-orchestrator.js +136 -77
- package/dist/services/workflow-orchestrator.js.map +1 -1
- package/dist/services/workflows-module.d.ts +112 -3
- package/dist/services/workflows-module.d.ts.map +1 -1
- package/dist/services/workflows-module.js +119 -7
- package/dist/services/workflows-module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/workflow-orchestrator-storage.d.ts +8 -2
- package/dist/utils/workflow-orchestrator-storage.d.ts.map +1 -1
- package/dist/utils/workflow-orchestrator-storage.js +255 -37
- package/dist/utils/workflow-orchestrator-storage.js.map +1 -1
- package/package.json +30 -30
|
@@ -1,10 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var _InMemoryDistributedTransactionStorage_instances, _InMemoryDistributedTransactionStorage_preventRaceConditionExecutionIfNecessary;
|
|
2
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
9
|
exports.InMemoryDistributedTransactionStorage = void 0;
|
|
10
|
+
const orchestration_1 = require("@etohq/framework/orchestration");
|
|
4
11
|
const utils_1 = require("@etohq/framework/utils");
|
|
12
|
+
const core_1 = require("@mikro-orm/core");
|
|
5
13
|
const cron_parser_1 = require("cron-parser");
|
|
14
|
+
function parseNextExecution(optionsOrExpression) {
|
|
15
|
+
if (typeof optionsOrExpression === "object") {
|
|
16
|
+
if ("cron" in optionsOrExpression) {
|
|
17
|
+
const expression = (0, cron_parser_1.parseExpression)(optionsOrExpression.cron);
|
|
18
|
+
return expression.next().getTime() - Date.now();
|
|
19
|
+
}
|
|
20
|
+
if ("interval" in optionsOrExpression) {
|
|
21
|
+
return optionsOrExpression.interval;
|
|
22
|
+
}
|
|
23
|
+
return optionsOrExpression.next().getTime() - Date.now();
|
|
24
|
+
}
|
|
25
|
+
const result = parseInt(`${optionsOrExpression}`);
|
|
26
|
+
if (isNaN(result)) {
|
|
27
|
+
const expression = (0, cron_parser_1.parseExpression)(`${optionsOrExpression}`);
|
|
28
|
+
return expression.next().getTime() - Date.now();
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
6
32
|
class InMemoryDistributedTransactionStorage {
|
|
7
33
|
constructor({ workflowExecutionService, logger, }) {
|
|
34
|
+
_InMemoryDistributedTransactionStorage_instances.add(this);
|
|
8
35
|
this.storage = new Map();
|
|
9
36
|
this.scheduled = new Map();
|
|
10
37
|
this.retries = new Map();
|
|
@@ -12,20 +39,33 @@ class InMemoryDistributedTransactionStorage {
|
|
|
12
39
|
this.workflowExecutionService_ = workflowExecutionService;
|
|
13
40
|
this.logger_ = logger;
|
|
14
41
|
}
|
|
42
|
+
async onApplicationStart() {
|
|
43
|
+
this.clearTimeout_ = setInterval(async () => {
|
|
44
|
+
try {
|
|
45
|
+
await this.clearExpiredExecutions();
|
|
46
|
+
}
|
|
47
|
+
catch { }
|
|
48
|
+
}, 1000 * 60 * 60);
|
|
49
|
+
}
|
|
50
|
+
async onApplicationShutdown() {
|
|
51
|
+
clearInterval(this.clearTimeout_);
|
|
52
|
+
}
|
|
15
53
|
setWorkflowOrchestratorService(workflowOrchestratorService) {
|
|
16
54
|
this.workflowOrchestratorService_ = workflowOrchestratorService;
|
|
17
55
|
}
|
|
18
|
-
async saveToDb(data) {
|
|
56
|
+
async saveToDb(data, retentionTime) {
|
|
19
57
|
await this.workflowExecutionService_.upsert([
|
|
20
58
|
{
|
|
21
59
|
workflow_id: data.flow.modelId,
|
|
22
60
|
transaction_id: data.flow.transactionId,
|
|
61
|
+
run_id: data.flow.runId,
|
|
23
62
|
execution: data.flow,
|
|
24
63
|
context: {
|
|
25
64
|
data: data.context,
|
|
26
65
|
errors: data.errors,
|
|
27
66
|
},
|
|
28
67
|
state: data.flow.state,
|
|
68
|
+
retention_time: retentionTime,
|
|
29
69
|
},
|
|
30
70
|
]);
|
|
31
71
|
}
|
|
@@ -34,41 +74,51 @@ class InMemoryDistributedTransactionStorage {
|
|
|
34
74
|
{
|
|
35
75
|
workflow_id: data.flow.modelId,
|
|
36
76
|
transaction_id: data.flow.transactionId,
|
|
77
|
+
run_id: data.flow.runId,
|
|
37
78
|
},
|
|
38
79
|
]);
|
|
39
80
|
}
|
|
40
81
|
async get(key, options) {
|
|
41
|
-
const data = this.storage.get(key);
|
|
42
|
-
if (data) {
|
|
43
|
-
return data;
|
|
44
|
-
}
|
|
45
|
-
const { idempotent } = options ?? {};
|
|
46
|
-
if (!idempotent) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
82
|
const [_, workflowId, transactionId] = key.split(":");
|
|
50
83
|
const trx = await this.workflowExecutionService_
|
|
51
|
-
.
|
|
84
|
+
.list({
|
|
52
85
|
workflow_id: workflowId,
|
|
53
86
|
transaction_id: transactionId,
|
|
54
87
|
}, {
|
|
55
88
|
select: ["execution", "context"],
|
|
89
|
+
order: {
|
|
90
|
+
id: "desc",
|
|
91
|
+
},
|
|
92
|
+
take: 1,
|
|
56
93
|
})
|
|
94
|
+
.then((trx) => trx[0])
|
|
57
95
|
.catch(() => undefined);
|
|
58
96
|
if (trx) {
|
|
97
|
+
const { flow, errors } = this.storage.get(key) ?? {};
|
|
98
|
+
const { idempotent } = options ?? {};
|
|
99
|
+
const execution = trx.execution;
|
|
100
|
+
if (!idempotent) {
|
|
101
|
+
const isFailedOrReverted = [
|
|
102
|
+
utils_1.TransactionState.REVERTED,
|
|
103
|
+
utils_1.TransactionState.FAILED,
|
|
104
|
+
].includes(execution.state);
|
|
105
|
+
const isDone = execution.state === utils_1.TransactionState.DONE;
|
|
106
|
+
const isCancellingAndFailedOrReverted = options?.isCancelling && isFailedOrReverted;
|
|
107
|
+
const isNotCancellingAndDoneOrFailedOrReverted = !options?.isCancelling && (isDone || isFailedOrReverted);
|
|
108
|
+
if (isCancellingAndFailedOrReverted ||
|
|
109
|
+
isNotCancellingAndDoneOrFailedOrReverted) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
59
113
|
return {
|
|
60
|
-
flow: trx.execution,
|
|
61
|
-
context: trx.context
|
|
62
|
-
errors: trx.context
|
|
114
|
+
flow: flow ?? trx.execution,
|
|
115
|
+
context: trx.context?.data,
|
|
116
|
+
errors: errors ?? trx.context?.errors,
|
|
63
117
|
};
|
|
64
118
|
}
|
|
65
119
|
return;
|
|
66
120
|
}
|
|
67
|
-
async list() {
|
|
68
|
-
return Array.from(this.storage.values());
|
|
69
|
-
}
|
|
70
121
|
async save(key, data, ttl, options) {
|
|
71
|
-
this.storage.set(key, data);
|
|
72
122
|
/**
|
|
73
123
|
* Store the retention time only if the transaction is done, failed or reverted.
|
|
74
124
|
* From that moment, this tuple can be later on archived or deleted after the retention time.
|
|
@@ -79,28 +129,59 @@ class InMemoryDistributedTransactionStorage {
|
|
|
79
129
|
utils_1.TransactionState.REVERTED,
|
|
80
130
|
].includes(data.flow.state);
|
|
81
131
|
const { retentionTime, idempotent } = options ?? {};
|
|
82
|
-
|
|
132
|
+
await __classPrivateFieldGet(this, _InMemoryDistributedTransactionStorage_instances, "m", _InMemoryDistributedTransactionStorage_preventRaceConditionExecutionIfNecessary).call(this, {
|
|
133
|
+
data,
|
|
134
|
+
key,
|
|
135
|
+
options,
|
|
136
|
+
});
|
|
137
|
+
// Only store retention time if it's provided
|
|
138
|
+
if (retentionTime) {
|
|
83
139
|
Object.assign(data, {
|
|
84
140
|
retention_time: retentionTime,
|
|
85
141
|
});
|
|
86
142
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
143
|
+
// Store in memory
|
|
144
|
+
const isNotStarted = data.flow.state === utils_1.TransactionState.NOT_STARTED;
|
|
145
|
+
const isManualTransactionId = !data.flow.transactionId.startsWith("auto-");
|
|
146
|
+
if (isNotStarted && isManualTransactionId) {
|
|
147
|
+
const storedData = this.storage.get(key);
|
|
148
|
+
if (storedData) {
|
|
149
|
+
throw new utils_1.EtoError(utils_1.EtoError.Types.INVALID_ARGUMENT, "Transaction already started for transactionId: " +
|
|
150
|
+
data.flow.transactionId);
|
|
151
|
+
}
|
|
92
152
|
}
|
|
153
|
+
const { flow, errors } = data;
|
|
154
|
+
this.storage.set(key, {
|
|
155
|
+
flow,
|
|
156
|
+
errors,
|
|
157
|
+
});
|
|
158
|
+
// Optimize DB operations - only perform when necessary
|
|
93
159
|
if (hasFinished) {
|
|
160
|
+
if (!retentionTime && !idempotent) {
|
|
161
|
+
await this.deleteFromDb(data);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
await this.saveToDb(data, retentionTime);
|
|
165
|
+
}
|
|
94
166
|
this.storage.delete(key);
|
|
95
167
|
}
|
|
168
|
+
else {
|
|
169
|
+
await this.saveToDb(data, retentionTime);
|
|
170
|
+
}
|
|
96
171
|
}
|
|
97
172
|
async scheduleRetry(transaction, step, timestamp, interval) {
|
|
98
173
|
const { modelId: workflowId, transactionId } = transaction;
|
|
99
174
|
const inter = setTimeout(async () => {
|
|
175
|
+
const context = transaction.getFlow().metadata ?? {};
|
|
100
176
|
await this.workflowOrchestratorService_.run(workflowId, {
|
|
101
177
|
transactionId,
|
|
102
178
|
logOnError: true,
|
|
103
179
|
throwOnError: false,
|
|
180
|
+
context: {
|
|
181
|
+
eventGroupId: context.eventGroupId,
|
|
182
|
+
parentStepIdempotencyKey: context.parentStepIdempotencyKey,
|
|
183
|
+
preventReleaseEvents: context.preventReleaseEvents,
|
|
184
|
+
},
|
|
104
185
|
});
|
|
105
186
|
}, interval * 1e3);
|
|
106
187
|
const key = `${workflowId}:${transactionId}:${step.id}`;
|
|
@@ -118,9 +199,16 @@ class InMemoryDistributedTransactionStorage {
|
|
|
118
199
|
async scheduleTransactionTimeout(transaction, timestamp, interval) {
|
|
119
200
|
const { modelId: workflowId, transactionId } = transaction;
|
|
120
201
|
const inter = setTimeout(async () => {
|
|
202
|
+
const context = transaction.getFlow().metadata ?? {};
|
|
121
203
|
await this.workflowOrchestratorService_.run(workflowId, {
|
|
122
204
|
transactionId,
|
|
205
|
+
logOnError: true,
|
|
123
206
|
throwOnError: false,
|
|
207
|
+
context: {
|
|
208
|
+
eventGroupId: context.eventGroupId,
|
|
209
|
+
parentStepIdempotencyKey: context.parentStepIdempotencyKey,
|
|
210
|
+
preventReleaseEvents: context.preventReleaseEvents,
|
|
211
|
+
},
|
|
124
212
|
});
|
|
125
213
|
}, interval * 1e3);
|
|
126
214
|
const key = `${workflowId}:${transactionId}`;
|
|
@@ -138,9 +226,16 @@ class InMemoryDistributedTransactionStorage {
|
|
|
138
226
|
async scheduleStepTimeout(transaction, step, timestamp, interval) {
|
|
139
227
|
const { modelId: workflowId, transactionId } = transaction;
|
|
140
228
|
const inter = setTimeout(async () => {
|
|
229
|
+
const context = transaction.getFlow().metadata ?? {};
|
|
141
230
|
await this.workflowOrchestratorService_.run(workflowId, {
|
|
142
231
|
transactionId,
|
|
232
|
+
logOnError: true,
|
|
143
233
|
throwOnError: false,
|
|
234
|
+
context: {
|
|
235
|
+
eventGroupId: context.eventGroupId,
|
|
236
|
+
parentStepIdempotencyKey: context.parentStepIdempotencyKey,
|
|
237
|
+
preventReleaseEvents: context.preventReleaseEvents,
|
|
238
|
+
},
|
|
144
239
|
});
|
|
145
240
|
}, interval * 1e3);
|
|
146
241
|
const key = `${workflowId}:${transactionId}:${step.id}`;
|
|
@@ -159,13 +254,24 @@ class InMemoryDistributedTransactionStorage {
|
|
|
159
254
|
async schedule(jobDefinition, schedulerOptions) {
|
|
160
255
|
const jobId = typeof jobDefinition === "string" ? jobDefinition : jobDefinition.jobId;
|
|
161
256
|
// In order to ensure that the schedule configuration is always up to date, we first cancel an existing job, if there was one
|
|
162
|
-
// any only then we add the new one.
|
|
163
257
|
await this.remove(jobId);
|
|
164
|
-
|
|
165
|
-
|
|
258
|
+
let expression;
|
|
259
|
+
let nextExecution = parseNextExecution(schedulerOptions);
|
|
260
|
+
if ("cron" in schedulerOptions) {
|
|
261
|
+
// Cache the parsed expression to avoid repeated parsing
|
|
262
|
+
expression = (0, cron_parser_1.parseExpression)(schedulerOptions.cron);
|
|
263
|
+
}
|
|
264
|
+
else if ("interval" in schedulerOptions) {
|
|
265
|
+
expression = schedulerOptions.interval;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
throw new utils_1.EtoError(utils_1.EtoError.Types.INVALID_ARGUMENT, "Schedule cron or interval definition is required for scheduled jobs.");
|
|
269
|
+
}
|
|
166
270
|
const timer = setTimeout(async () => {
|
|
167
271
|
this.jobHandler(jobId);
|
|
168
272
|
}, nextExecution);
|
|
273
|
+
// Set the timer's unref to prevent it from keeping the process alive
|
|
274
|
+
timer.unref();
|
|
169
275
|
this.scheduled.set(jobId, {
|
|
170
276
|
timer,
|
|
171
277
|
expression,
|
|
@@ -196,22 +302,26 @@ class InMemoryDistributedTransactionStorage {
|
|
|
196
302
|
this.scheduled.delete(jobId);
|
|
197
303
|
return;
|
|
198
304
|
}
|
|
199
|
-
const nextExecution = job.expression
|
|
200
|
-
const timer = setTimeout(async () => {
|
|
201
|
-
this.jobHandler(jobId);
|
|
202
|
-
}, nextExecution);
|
|
203
|
-
this.scheduled.set(jobId, {
|
|
204
|
-
timer,
|
|
205
|
-
expression: job.expression,
|
|
206
|
-
numberOfExecutions: (job.numberOfExecutions ?? 0) + 1,
|
|
207
|
-
config: job.config,
|
|
208
|
-
});
|
|
305
|
+
const nextExecution = parseNextExecution(job.expression);
|
|
209
306
|
try {
|
|
210
|
-
// With running the job after setting a new timer we basically allow for concurrent runs, unless we add idempotency keys once they are supported.
|
|
211
307
|
await this.workflowOrchestratorService_.run(jobId, {
|
|
212
308
|
logOnError: true,
|
|
213
309
|
throwOnError: false,
|
|
214
310
|
});
|
|
311
|
+
// Only schedule the next job execution after the current one completes successfully
|
|
312
|
+
const timer = setTimeout(async () => {
|
|
313
|
+
setImmediate(() => {
|
|
314
|
+
this.jobHandler(jobId);
|
|
315
|
+
});
|
|
316
|
+
}, nextExecution);
|
|
317
|
+
// Prevent timer from keeping the process alive
|
|
318
|
+
timer.unref();
|
|
319
|
+
this.scheduled.set(jobId, {
|
|
320
|
+
timer,
|
|
321
|
+
expression: job.expression,
|
|
322
|
+
numberOfExecutions: (job.numberOfExecutions ?? 0) + 1,
|
|
323
|
+
config: job.config,
|
|
324
|
+
});
|
|
215
325
|
}
|
|
216
326
|
catch (e) {
|
|
217
327
|
if (e instanceof utils_1.EtoError && e.type === utils_1.EtoError.Types.NOT_FOUND) {
|
|
@@ -222,6 +332,114 @@ class InMemoryDistributedTransactionStorage {
|
|
|
222
332
|
throw e;
|
|
223
333
|
}
|
|
224
334
|
}
|
|
335
|
+
async clearExpiredExecutions() {
|
|
336
|
+
await this.workflowExecutionService_.delete({
|
|
337
|
+
retention_time: {
|
|
338
|
+
$ne: null,
|
|
339
|
+
},
|
|
340
|
+
updated_at: {
|
|
341
|
+
$lte: (0, core_1.raw)((alias) => `CURRENT_TIMESTAMP - (INTERVAL '1 second' * retention_time)`),
|
|
342
|
+
},
|
|
343
|
+
state: {
|
|
344
|
+
$in: [
|
|
345
|
+
utils_1.TransactionState.DONE,
|
|
346
|
+
utils_1.TransactionState.FAILED,
|
|
347
|
+
utils_1.TransactionState.REVERTED,
|
|
348
|
+
],
|
|
349
|
+
},
|
|
350
|
+
});
|
|
351
|
+
}
|
|
225
352
|
}
|
|
226
353
|
exports.InMemoryDistributedTransactionStorage = InMemoryDistributedTransactionStorage;
|
|
354
|
+
_InMemoryDistributedTransactionStorage_instances = new WeakSet(), _InMemoryDistributedTransactionStorage_preventRaceConditionExecutionIfNecessary = async function _InMemoryDistributedTransactionStorage_preventRaceConditionExecutionIfNecessary({ data, key, options, }) {
|
|
355
|
+
const isInitialCheckpoint = [utils_1.TransactionState.NOT_STARTED].includes(data.flow.state);
|
|
356
|
+
/**
|
|
357
|
+
* In case many execution can succeed simultaneously, we need to ensure that the latest
|
|
358
|
+
* execution does continue if a previous execution is considered finished
|
|
359
|
+
*/
|
|
360
|
+
const currentFlow = data.flow;
|
|
361
|
+
const rawData = this.storage.get(key);
|
|
362
|
+
let data_ = {};
|
|
363
|
+
if (rawData) {
|
|
364
|
+
data_ = rawData;
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
const getOptions = {
|
|
368
|
+
...options,
|
|
369
|
+
isCancelling: !!data.flow.cancelledAt,
|
|
370
|
+
};
|
|
371
|
+
data_ =
|
|
372
|
+
(await this.get(key, getOptions)) ??
|
|
373
|
+
{ flow: {} };
|
|
374
|
+
}
|
|
375
|
+
const { flow: latestUpdatedFlow } = data_;
|
|
376
|
+
if (!isInitialCheckpoint && !(0, utils_1.isPresent)(latestUpdatedFlow)) {
|
|
377
|
+
/**
|
|
378
|
+
* the initial checkpoint expect no other checkpoint to have been stored.
|
|
379
|
+
* In case it is not the initial one and another checkpoint is trying to
|
|
380
|
+
* find if a concurrent execution has finished, we skip the execution.
|
|
381
|
+
* The already finished execution would have deleted the checkpoint already.
|
|
382
|
+
*/
|
|
383
|
+
throw new orchestration_1.SkipExecutionError("Already finished by another execution");
|
|
384
|
+
}
|
|
385
|
+
// First ensure that the latest execution was not cancelled, otherwise we skip the execution
|
|
386
|
+
const latestTransactionCancelledAt = latestUpdatedFlow.cancelledAt;
|
|
387
|
+
const currentTransactionCancelledAt = currentFlow.cancelledAt;
|
|
388
|
+
if (!!latestTransactionCancelledAt &&
|
|
389
|
+
currentTransactionCancelledAt == null) {
|
|
390
|
+
throw new orchestration_1.SkipCancelledExecutionError("Workflow execution has been cancelled during the execution");
|
|
391
|
+
}
|
|
392
|
+
const currentFlowSteps = Object.values(currentFlow.steps || {});
|
|
393
|
+
const latestUpdatedFlowSteps = latestUpdatedFlow.steps
|
|
394
|
+
? Object.values(latestUpdatedFlow.steps)
|
|
395
|
+
: [];
|
|
396
|
+
// Predefined states for quick lookup
|
|
397
|
+
const invokingStates = [
|
|
398
|
+
utils_1.TransactionStepState.INVOKING,
|
|
399
|
+
utils_1.TransactionStepState.NOT_STARTED,
|
|
400
|
+
];
|
|
401
|
+
const compensatingStates = [
|
|
402
|
+
utils_1.TransactionStepState.COMPENSATING,
|
|
403
|
+
utils_1.TransactionStepState.NOT_STARTED,
|
|
404
|
+
];
|
|
405
|
+
const isInvokingState = (step) => invokingStates.includes(step.invoke?.state);
|
|
406
|
+
const isCompensatingState = (step) => compensatingStates.includes(step.compensate?.state);
|
|
407
|
+
const currentFlowLastInvokingStepIndex = currentFlowSteps.findIndex(isInvokingState);
|
|
408
|
+
const latestUpdatedFlowLastInvokingStepIndex = !latestUpdatedFlow.steps
|
|
409
|
+
? 1 // There is no other execution, so the current execution is the latest
|
|
410
|
+
: latestUpdatedFlowSteps.findIndex(isInvokingState);
|
|
411
|
+
const reversedCurrentFlowSteps = [...currentFlowSteps].reverse();
|
|
412
|
+
const currentFlowLastCompensatingStepIndex = reversedCurrentFlowSteps.findIndex(isCompensatingState);
|
|
413
|
+
const reversedLatestUpdatedFlowSteps = [...latestUpdatedFlowSteps].reverse();
|
|
414
|
+
const latestUpdatedFlowLastCompensatingStepIndex = !latestUpdatedFlow.steps
|
|
415
|
+
? -1 // There is no other execution, so the current execution is the latest
|
|
416
|
+
: reversedLatestUpdatedFlowSteps.findIndex(isCompensatingState);
|
|
417
|
+
const isLatestExecutionFinishedIndex = -1;
|
|
418
|
+
const invokeShouldBeSkipped = (latestUpdatedFlowLastInvokingStepIndex ===
|
|
419
|
+
isLatestExecutionFinishedIndex ||
|
|
420
|
+
currentFlowLastInvokingStepIndex <
|
|
421
|
+
latestUpdatedFlowLastInvokingStepIndex) &&
|
|
422
|
+
currentFlowLastInvokingStepIndex !== isLatestExecutionFinishedIndex;
|
|
423
|
+
const compensateShouldBeSkipped = currentFlowLastCompensatingStepIndex <
|
|
424
|
+
latestUpdatedFlowLastCompensatingStepIndex &&
|
|
425
|
+
currentFlowLastCompensatingStepIndex !== isLatestExecutionFinishedIndex &&
|
|
426
|
+
latestUpdatedFlowLastCompensatingStepIndex !==
|
|
427
|
+
isLatestExecutionFinishedIndex;
|
|
428
|
+
const isCompensatingMismatch = latestUpdatedFlow.state === utils_1.TransactionState.COMPENSATING &&
|
|
429
|
+
![utils_1.TransactionState.REVERTED, utils_1.TransactionState.FAILED].includes(currentFlow.state) &&
|
|
430
|
+
currentFlow.state !== latestUpdatedFlow.state;
|
|
431
|
+
const isRevertedMismatch = latestUpdatedFlow.state === utils_1.TransactionState.REVERTED &&
|
|
432
|
+
currentFlow.state !== utils_1.TransactionState.REVERTED;
|
|
433
|
+
const isFailedMismatch = latestUpdatedFlow.state === utils_1.TransactionState.FAILED &&
|
|
434
|
+
currentFlow.state !== utils_1.TransactionState.FAILED;
|
|
435
|
+
if ((data.flow.state !== utils_1.TransactionState.COMPENSATING &&
|
|
436
|
+
invokeShouldBeSkipped) ||
|
|
437
|
+
(data.flow.state === utils_1.TransactionState.COMPENSATING &&
|
|
438
|
+
compensateShouldBeSkipped) ||
|
|
439
|
+
isCompensatingMismatch ||
|
|
440
|
+
isRevertedMismatch ||
|
|
441
|
+
isFailedMismatch) {
|
|
442
|
+
throw new orchestration_1.SkipExecutionError("Already finished by another execution");
|
|
443
|
+
}
|
|
444
|
+
};
|
|
227
445
|
//# sourceMappingURL=workflow-orchestrator-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-orchestrator-storage.js","sourceRoot":"","sources":["../../src/utils/workflow-orchestrator-storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-orchestrator-storage.js","sourceRoot":"","sources":["../../src/utils/workflow-orchestrator-storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etohq/workflow-engine-inmemory",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Eto Workflow Orchestrator module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -23,43 +23,43 @@
|
|
|
23
23
|
},
|
|
24
24
|
"author": "Eto",
|
|
25
25
|
"license": "MIT",
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@mikro-orm/cli": "6.4.3",
|
|
28
|
+
"@mikro-orm/core": "6.4.3",
|
|
29
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
30
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
31
|
+
"@swc/core": "1.7.28",
|
|
32
|
+
"@swc/jest": "0.2.36",
|
|
33
|
+
"@types/jest": "29.5.14",
|
|
34
|
+
"awilix": "8.0.1",
|
|
35
|
+
"jest": "29.7.0",
|
|
36
|
+
"rimraf": "5.0.2",
|
|
37
|
+
"tsc-alias": "1.8.6",
|
|
38
|
+
"typescript": "5.8.3",
|
|
39
|
+
"@etohq/framework": "1.5.0",
|
|
40
|
+
"@etohq/test-utils": "1.5.0"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"cron-parser": "4.9.0",
|
|
44
|
+
"ulid": "2.3.0"
|
|
45
|
+
},
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"@mikro-orm/core": "6.4.3",
|
|
48
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
49
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
50
|
+
"awilix": "8.0.1",
|
|
51
|
+
"@etohq/framework": "1.5.0"
|
|
52
|
+
},
|
|
26
53
|
"scripts": {
|
|
27
54
|
"watch": "tsc --build --watch",
|
|
28
55
|
"watch:test": "tsc --build tsconfig.spec.json --watch",
|
|
29
|
-
"resolve:aliases": "tsc --showConfig -p tsconfig.json > tsconfig.resolved.json && tsc-alias -p tsconfig.resolved.json && rimraf tsconfig.resolved.json",
|
|
30
56
|
"build": "rimraf dist && tsc --build && npm run resolve:aliases",
|
|
57
|
+
"resolve:aliases": "tsc --showConfig -p tsconfig.json > tsconfig.resolved.json && tsc-alias -p tsconfig.resolved.json && rimraf tsconfig.resolved.json",
|
|
31
58
|
"test": "jest --passWithNoTests --runInBand --bail --forceExit -- src",
|
|
32
59
|
"test:integration": "jest --silent --forceExit -- integration-tests/**/__tests__/**/*.ts",
|
|
33
60
|
"migration:initial": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts eto-mikro-orm migration:create --initial",
|
|
34
61
|
"migration:create": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts eto-mikro-orm migration:create",
|
|
35
62
|
"migration:up": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts eto-mikro-orm migration:up",
|
|
36
63
|
"orm:cache:clear": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts eto-mikro-orm cache:clear"
|
|
37
|
-
},
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"@etohq/framework": "^1.3.0",
|
|
40
|
-
"@etohq/test-utils": "^1.3.0",
|
|
41
|
-
"@mikro-orm/cli": "5.9.7",
|
|
42
|
-
"@mikro-orm/core": "5.9.7",
|
|
43
|
-
"@mikro-orm/migrations": "5.9.7",
|
|
44
|
-
"@mikro-orm/postgresql": "5.9.7",
|
|
45
|
-
"@swc/core": "^1.7.28",
|
|
46
|
-
"@swc/jest": "^0.2.36",
|
|
47
|
-
"@types/jest": "^29.5.14",
|
|
48
|
-
"awilix": "^8.0.1",
|
|
49
|
-
"jest": "^29.7.0",
|
|
50
|
-
"rimraf": "^5.0.2",
|
|
51
|
-
"tsc-alias": "^1.8.6",
|
|
52
|
-
"typescript": "^5.8.3"
|
|
53
|
-
},
|
|
54
|
-
"dependencies": {
|
|
55
|
-
"cron-parser": "^4.9.0",
|
|
56
|
-
"ulid": "^2.3.0"
|
|
57
|
-
},
|
|
58
|
-
"peerDependencies": {
|
|
59
|
-
"@etohq/framework": "^1.1.0",
|
|
60
|
-
"@mikro-orm/core": "5.9.7",
|
|
61
|
-
"@mikro-orm/migrations": "5.9.7",
|
|
62
|
-
"@mikro-orm/postgresql": "5.9.7",
|
|
63
|
-
"awilix": "^8.0.1"
|
|
64
64
|
}
|
|
65
|
-
}
|
|
65
|
+
}
|