@dbos-inc/dbos-sdk 1.30.21-preview.g838bed7f8d → 1.31.13-preview.g4f38e6e769

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.
@@ -4,8 +4,14 @@ exports.RetrievedHandle = exports.InvokedHandle = exports.WorkflowContextImpl =
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  const dbos_executor_1 = require("./dbos-executor");
6
6
  const transaction_1 = require("./transaction");
7
+ const error_1 = require("./error");
8
+ const serialize_error_1 = require("serialize-error");
9
+ const utils_1 = require("./utils");
10
+ const user_database_1 = require("./user_database");
11
+ const api_1 = require("@opentelemetry/api");
7
12
  const context_1 = require("./context");
8
13
  const decorators_1 = require("./decorators");
14
+ const procedure_1 = require("./procedure");
9
15
  exports.StatusString = {
10
16
  PENDING: "PENDING",
11
17
  SUCCESS: "SUCCESS",
@@ -49,6 +55,160 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
49
55
  functionIDGetIncrement() {
50
56
  return this.functionID++;
51
57
  }
58
+ /**
59
+ * Retrieve the transaction snapshot information of the current transaction
60
+ */
61
+ async #retrieveSnapshot(query) {
62
+ const rows = await query("SELECT pg_current_snapshot()::text as txn_snapshot;", []);
63
+ return rows[0].txn_snapshot;
64
+ }
65
+ retrieveTxSnapshot(client) {
66
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
67
+ return this.#retrieveSnapshot(func);
68
+ }
69
+ retrieveProcSnapshot(client) {
70
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
71
+ return this.#retrieveSnapshot(func);
72
+ }
73
+ /**
74
+ * Check if an operation has already executed in a workflow.
75
+ * If it previously executed successfully, return its output.
76
+ * If it previously executed and threw an error, throw that error.
77
+ * Otherwise, return DBOSNull.
78
+ * Also return the transaction snapshot information of this current transaction.
79
+ */
80
+ async #checkExecution(query, funcID) {
81
+ // Note: we read the current snapshot, not the recorded one!
82
+ const rows = await query("(SELECT output, error, txn_snapshot, true as recorded FROM dbos.transaction_outputs WHERE workflow_uuid=$1 AND function_id=$2 UNION ALL SELECT null as output, null as error, pg_current_snapshot()::text as txn_snapshot, false as recorded) ORDER BY recorded", [this.workflowUUID, funcID]);
83
+ if (rows.length === 0 || rows.length > 2) {
84
+ this.logger.error("Unexpected! This should never happen. Returned rows: " + rows.toString());
85
+ throw new error_1.DBOSError("This should never happen. Returned rows: " + rows.toString());
86
+ }
87
+ const res = {
88
+ output: dbos_executor_1.dbosNull,
89
+ txn_snapshot: ""
90
+ };
91
+ // recorded=false row will be first because we used ORDER BY.
92
+ res.txn_snapshot = rows[0].txn_snapshot;
93
+ if (rows.length === 2) {
94
+ if (utils_1.DBOSJSON.parse(rows[1].error) !== null) {
95
+ throw (0, serialize_error_1.deserializeError)(utils_1.DBOSJSON.parse(rows[1].error));
96
+ }
97
+ else {
98
+ res.output = utils_1.DBOSJSON.parse(rows[1].output);
99
+ }
100
+ }
101
+ return res;
102
+ }
103
+ checkTxExecution(client, funcID) {
104
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
105
+ return this.#checkExecution(func, funcID);
106
+ }
107
+ checkProcExecution(client, funcID) {
108
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
109
+ return this.#checkExecution(func, funcID);
110
+ }
111
+ /**
112
+ * Write all entries in the workflow result buffer to the database.
113
+ * If it encounters a primary key error, this indicates a concurrent execution with the same UUID, so throw an DBOSError.
114
+ */
115
+ async #flushResultBuffer(query, isKeyConflict) {
116
+ const funcIDs = Array.from(this.resultBuffer.keys());
117
+ if (funcIDs.length === 0) {
118
+ return;
119
+ }
120
+ funcIDs.sort();
121
+ try {
122
+ let sqlStmt = "INSERT INTO dbos.transaction_outputs (workflow_uuid, function_id, output, error, txn_id, txn_snapshot, created_at) VALUES ";
123
+ let paramCnt = 1;
124
+ const values = [];
125
+ for (const funcID of funcIDs) {
126
+ // Capture output and also transaction snapshot information.
127
+ // Initially, no txn_id because no queries executed.
128
+ const recorded = this.resultBuffer.get(funcID);
129
+ const output = recorded.output;
130
+ const txnSnapshot = recorded.txn_snapshot;
131
+ const createdAt = recorded.created_at;
132
+ if (paramCnt > 1) {
133
+ sqlStmt += ", ";
134
+ }
135
+ sqlStmt += `($${paramCnt++}, $${paramCnt++}, $${paramCnt++}, $${paramCnt++}, null, $${paramCnt++}, $${paramCnt++})`;
136
+ values.push(this.workflowUUID, funcID, utils_1.DBOSJSON.stringify(output), utils_1.DBOSJSON.stringify(null), txnSnapshot, createdAt);
137
+ }
138
+ this.logger.debug(sqlStmt);
139
+ await query(sqlStmt, values);
140
+ }
141
+ catch (error) {
142
+ if (isKeyConflict(error)) {
143
+ // Serialization and primary key conflict (Postgres).
144
+ throw new error_1.DBOSWorkflowConflictUUIDError(this.workflowUUID);
145
+ }
146
+ else {
147
+ throw error;
148
+ }
149
+ }
150
+ }
151
+ flushResultBuffer(client) {
152
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
153
+ return this.#flushResultBuffer(func, (error) => this.#dbosExec.userDatabase.isKeyConflictError(error));
154
+ }
155
+ flushResultBufferProc(client) {
156
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
157
+ return this.#flushResultBuffer(func, user_database_1.pgNodeIsKeyConflictError);
158
+ }
159
+ /**
160
+ * Write a operation's output to the database.
161
+ */
162
+ async #recordOutput(query, funcID, txnSnapshot, output, isKeyConflict) {
163
+ try {
164
+ const serialOutput = utils_1.DBOSJSON.stringify(output);
165
+ const rows = await query("INSERT INTO dbos.transaction_outputs (workflow_uuid, function_id, output, txn_id, txn_snapshot, created_at) VALUES ($1, $2, $3, (select pg_current_xact_id_if_assigned()::text), $4, $5) RETURNING txn_id;", [this.workflowUUID, funcID, serialOutput, txnSnapshot, Date.now()]);
166
+ return rows[0].txn_id;
167
+ }
168
+ catch (error) {
169
+ if (isKeyConflict(error)) {
170
+ // Serialization and primary key conflict (Postgres).
171
+ throw new error_1.DBOSWorkflowConflictUUIDError(this.workflowUUID);
172
+ }
173
+ else {
174
+ throw error;
175
+ }
176
+ }
177
+ }
178
+ recordOutputTx(client, funcID, txnSnapshot, output) {
179
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
180
+ return this.#recordOutput(func, funcID, txnSnapshot, output, (error) => this.#dbosExec.userDatabase.isKeyConflictError(error));
181
+ }
182
+ recordOutputProc(client, funcID, txnSnapshot, output) {
183
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
184
+ return this.#recordOutput(func, funcID, txnSnapshot, output, user_database_1.pgNodeIsKeyConflictError);
185
+ }
186
+ /**
187
+ * Record an error in an operation to the database.
188
+ */
189
+ async #recordError(query, funcID, txnSnapshot, err, isKeyConflict) {
190
+ try {
191
+ const serialErr = utils_1.DBOSJSON.stringify((0, serialize_error_1.serializeError)(err));
192
+ await query("INSERT INTO dbos.transaction_outputs (workflow_uuid, function_id, error, txn_id, txn_snapshot, created_at) VALUES ($1, $2, $3, null, $4, $5) RETURNING txn_id;", [this.workflowUUID, funcID, serialErr, txnSnapshot, Date.now()]);
193
+ }
194
+ catch (error) {
195
+ if (isKeyConflict(error)) {
196
+ // Serialization and primary key conflict (Postgres).
197
+ throw new error_1.DBOSWorkflowConflictUUIDError(this.workflowUUID);
198
+ }
199
+ else {
200
+ throw error;
201
+ }
202
+ }
203
+ }
204
+ recordErrorTx(client, funcID, txnSnapshot, err) {
205
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
206
+ return this.#recordError(func, funcID, txnSnapshot, err, (error) => this.#dbosExec.userDatabase.isKeyConflictError(error));
207
+ }
208
+ recordErrorProc(client, funcID, txnSnapshot, err) {
209
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
210
+ return this.#recordError(func, funcID, txnSnapshot, err, user_database_1.pgNodeIsKeyConflictError);
211
+ }
52
212
  /**
53
213
  * Invoke another workflow as its child workflow and return a workflow handle.
54
214
  * The child workflow is guaranteed to be executed exactly once, even if the workflow is retried with the same UUID.
@@ -110,9 +270,167 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
110
270
  async childWorkflow(wf, ...args) {
111
271
  return this.startChildWorkflow(wf, ...args);
112
272
  }
273
+ async #invokeProcLocal(proc, args, span, config, funcId) {
274
+ let retryWaitMillis = 1;
275
+ const backoffFactor = 1.5;
276
+ const maxRetryWaitMs = 2000; // Maximum wait 2 seconds.
277
+ const readOnly = config.readOnly ?? false;
278
+ while (true) {
279
+ let txn_snapshot = "invalid";
280
+ const wrappedProcedure = async (client) => {
281
+ const ctxt = new procedure_1.StoredProcedureContextImpl(client, this, span, this.#dbosExec.logger, proc.name);
282
+ if (this.presetUUID) {
283
+ const check = await this.checkProcExecution(client, this.functionID);
284
+ txn_snapshot = check.txn_snapshot;
285
+ if (check.output !== dbos_executor_1.dbosNull) {
286
+ ctxt.span.setAttribute("cached", true);
287
+ ctxt.span.setStatus({ code: api_1.SpanStatusCode.OK });
288
+ this.#dbosExec.tracer.endSpan(ctxt.span);
289
+ return check.output;
290
+ }
291
+ }
292
+ else {
293
+ // Collect snapshot information for read-only transactions and non-preset UUID transactions, if not already collected above
294
+ txn_snapshot = await this.retrieveProcSnapshot(client);
295
+ }
296
+ // For non-read-only transactions, flush the result buffer.
297
+ if (!readOnly) {
298
+ await this.flushResultBufferProc(client);
299
+ }
300
+ let cresult;
301
+ await (0, context_1.runWithDBOSContext)(ctxt, async () => {
302
+ cresult = await proc(ctxt, ...args);
303
+ });
304
+ const result = cresult;
305
+ if (readOnly) {
306
+ // Buffer the output of read-only transactions instead of synchronously writing it.
307
+ const readOutput = {
308
+ output: result,
309
+ txn_snapshot: txn_snapshot,
310
+ created_at: Date.now(),
311
+ };
312
+ this.resultBuffer.set(funcId, readOutput);
313
+ }
314
+ else {
315
+ // Synchronously record the output of write transactions and obtain the transaction ID.
316
+ const pg_txn_id = await this.recordOutputProc(client, funcId, txn_snapshot, result);
317
+ ctxt.span.setAttribute("pg_txn_id", pg_txn_id);
318
+ this.resultBuffer.clear();
319
+ }
320
+ return result;
321
+ };
322
+ try {
323
+ const result = await this.#dbosExec.executeProcedure(wrappedProcedure, { isolationLevel: config.isolationLevel });
324
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
325
+ return result;
326
+ }
327
+ catch (err) {
328
+ if (this.#dbosExec.userDatabase.isRetriableTransactionError(err)) {
329
+ // serialization_failure in PostgreSQL
330
+ span.addEvent("TXN SERIALIZATION FAILURE", { "retryWaitMillis": retryWaitMillis }, performance.now());
331
+ // Retry serialization failures.
332
+ await (0, utils_1.sleepms)(retryWaitMillis);
333
+ retryWaitMillis *= backoffFactor;
334
+ retryWaitMillis = retryWaitMillis < maxRetryWaitMs ? retryWaitMillis : maxRetryWaitMs;
335
+ continue;
336
+ }
337
+ // Record and throw other errors.
338
+ const e = err;
339
+ await this.#dbosExec.executeProcedure(async (client) => {
340
+ await this.flushResultBufferProc(client);
341
+ await this.recordErrorProc(client, funcId, txn_snapshot, e);
342
+ }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
343
+ await this.#dbosExec.userDatabase.transaction(async (client) => {
344
+ await this.flushResultBuffer(client);
345
+ await this.recordErrorTx(client, funcId, txn_snapshot, e);
346
+ }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
347
+ this.resultBuffer.clear();
348
+ throw err;
349
+ }
350
+ }
351
+ }
352
+ async #invokeProcRemote(proc, args, span, config, funcId) {
353
+ const readOnly = config.readOnly ?? false;
354
+ const $jsonCtx = {
355
+ request: this.request,
356
+ authenticatedUser: this.authenticatedUser,
357
+ authenticatedRoles: this.authenticatedRoles,
358
+ assumedRole: this.assumedRole,
359
+ };
360
+ // Note, node-pg converts JS arrays to postgres array literals, so must call JSON.strigify on
361
+ // args and bufferedResults before being passed to dbosExec.callProcedure
362
+ const $args = [this.workflowUUID, funcId, this.presetUUID, $jsonCtx, null, JSON.stringify(args)];
363
+ if (!readOnly) {
364
+ // function_id, output, txn_snapshot, created_at
365
+ const bufferedResults = new Array();
366
+ for (const [functionID, { output, txn_snapshot, created_at }] of this.resultBuffer.entries()) {
367
+ bufferedResults.push([functionID, output, txn_snapshot, created_at]);
368
+ }
369
+ // sort by function ID
370
+ bufferedResults.sort((a, b) => a[0] - b[0]);
371
+ $args.unshift(bufferedResults.length > 0 ? JSON.stringify(bufferedResults) : null);
372
+ }
373
+ const [{ return_value }] = await this.#dbosExec.callProcedure(proc, $args);
374
+ const { error, output, txn_snapshot, txn_id, created_at } = return_value;
375
+ // buffered results are persisted in r/w stored procs, even if it returns an error
376
+ if (!readOnly) {
377
+ this.resultBuffer.clear();
378
+ }
379
+ // if the stored proc returns an error, deserialize and throw it.
380
+ // stored proc saves the error in tx_output before returning
381
+ if (error) {
382
+ throw (0, serialize_error_1.deserializeError)(error);
383
+ }
384
+ // if txn_snapshot is provided, the output needs to be buffered
385
+ if (readOnly && txn_snapshot) {
386
+ this.resultBuffer.set(funcId, {
387
+ output,
388
+ txn_snapshot,
389
+ created_at: created_at ?? Date.now(),
390
+ });
391
+ }
392
+ if (!readOnly) {
393
+ this.resultBuffer.clear();
394
+ }
395
+ if (txn_id) {
396
+ span.setAttribute("pg_txn_id", txn_id);
397
+ }
398
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
399
+ return output;
400
+ }
113
401
  // TODO: ConfiguredInstance support
114
402
  async procedure(proc, ...args) {
115
- return this.#dbosExec.callProcedureFunction(proc, this, ...args);
403
+ const procInfo = this.#dbosExec.getProcedureInfo(proc);
404
+ if (procInfo === undefined) {
405
+ throw new error_1.DBOSNotRegisteredError(proc.name);
406
+ }
407
+ const executeLocally = procInfo.config.executeLocally ?? false;
408
+ const funcId = this.functionIDGetIncrement();
409
+ const span = this.#dbosExec.tracer.startSpan(proc.name, {
410
+ operationUUID: this.workflowUUID,
411
+ operationType: dbos_executor_1.OperationType.PROCEDURE,
412
+ authenticatedUser: this.authenticatedUser,
413
+ assumedRole: this.assumedRole,
414
+ authenticatedRoles: this.authenticatedRoles,
415
+ readOnly: procInfo.config.readOnly ?? false,
416
+ isolationLevel: procInfo.config.isolationLevel,
417
+ executeLocally,
418
+ }, this.span);
419
+ try {
420
+ const result = executeLocally
421
+ ? await this.#invokeProcLocal(proc, args, span, procInfo.config, funcId)
422
+ : await this.#invokeProcRemote(proc, args, span, procInfo.config, funcId);
423
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
424
+ return result;
425
+ }
426
+ catch (e) {
427
+ const { message } = e;
428
+ span.setStatus({ code: api_1.SpanStatusCode.ERROR, message });
429
+ throw e;
430
+ }
431
+ finally {
432
+ this.#dbosExec.tracer.endSpan(span);
433
+ }
116
434
  }
117
435
  /**
118
436
  * Execute a transactional function.
@@ -138,7 +456,7 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
138
456
  async send(destinationUUID, message, topic) {
139
457
  const functionID = this.functionIDGetIncrement();
140
458
  await this.#dbosExec.userDatabase.transaction(async (client) => {
141
- await this.#dbosExec.flushResultBuffer(client, this.resultBuffer, this.workflowUUID);
459
+ await this.flushResultBuffer(client);
142
460
  }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
143
461
  this.resultBuffer.clear();
144
462
  await this.#dbosExec.systemDatabase.send(this.workflowUUID, functionID, destinationUUID, message, topic);
@@ -152,7 +470,7 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
152
470
  const functionID = this.functionIDGetIncrement();
153
471
  const timeoutFunctionID = this.functionIDGetIncrement();
154
472
  await this.#dbosExec.userDatabase.transaction(async (client) => {
155
- await this.#dbosExec.flushResultBuffer(client, this.resultBuffer, this.workflowUUID);
473
+ await this.flushResultBuffer(client);
156
474
  }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
157
475
  this.resultBuffer.clear();
158
476
  return this.#dbosExec.systemDatabase.recv(this.workflowUUID, functionID, timeoutFunctionID, topic, timeoutSeconds);
@@ -164,7 +482,7 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
164
482
  async setEvent(key, value) {
165
483
  const functionID = this.functionIDGetIncrement();
166
484
  await this.#dbosExec.userDatabase.transaction(async (client) => {
167
- await this.#dbosExec.flushResultBuffer(client, this.resultBuffer, this.workflowUUID);
485
+ await this.flushResultBuffer(client);
168
486
  }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
169
487
  this.resultBuffer.clear();
170
488
  await this.#dbosExec.systemDatabase.setEvent(this.workflowUUID, functionID, key, value);
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"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"}