@rivetkit/workflow-engine 2.3.17 → 2.3.18-rc.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.
- package/dist/tsup/{chunk-KLHCG2KY.cjs → chunk-32422MOM.cjs} +32 -15
- package/dist/tsup/chunk-32422MOM.cjs.map +1 -0
- package/dist/tsup/{chunk-DTS4S7RT.js → chunk-TVRZA5O5.js} +32 -15
- package/dist/tsup/chunk-TVRZA5O5.js.map +1 -0
- package/dist/tsup/index.cjs +2 -2
- package/dist/tsup/index.d.cts +5 -0
- package/dist/tsup/index.d.ts +5 -0
- package/dist/tsup/index.js +1 -1
- package/dist/tsup/testing.cjs +29 -23
- package/dist/tsup/testing.cjs.map +1 -1
- package/dist/tsup/testing.d.cts +1 -0
- package/dist/tsup/testing.d.ts +1 -0
- package/dist/tsup/testing.js +7 -1
- package/dist/tsup/testing.js.map +1 -1
- package/package.json +1 -1
- package/src/driver.ts +6 -0
- package/src/storage.ts +44 -14
- package/src/testing.ts +7 -0
- package/dist/tsup/chunk-DTS4S7RT.js.map +0 -1
- package/dist/tsup/chunk-KLHCG2KY.cjs.map +0 -1
|
@@ -1437,6 +1437,7 @@ function deserializeName(bytes) {
|
|
|
1437
1437
|
// src/storage.ts
|
|
1438
1438
|
var MAX_KV_BATCH_ENTRIES = 128;
|
|
1439
1439
|
var MAX_KV_BATCH_PAYLOAD_BYTES = 976 * 1024;
|
|
1440
|
+
var MAX_CONCURRENT_DELETES = 64;
|
|
1440
1441
|
function createStorage() {
|
|
1441
1442
|
return {
|
|
1442
1443
|
nameRegistry: [],
|
|
@@ -1616,18 +1617,8 @@ async function flush(storage, driver, onHistoryUpdated, pendingDeletions) {
|
|
|
1616
1617
|
}
|
|
1617
1618
|
}
|
|
1618
1619
|
if (pendingDeletions) {
|
|
1619
|
-
const
|
|
1620
|
-
|
|
1621
|
-
deleteOps.push(driver.deletePrefix(prefix));
|
|
1622
|
-
}
|
|
1623
|
-
for (const range of pendingDeletions.ranges) {
|
|
1624
|
-
deleteOps.push(driver.deleteRange(range.start, range.end));
|
|
1625
|
-
}
|
|
1626
|
-
for (const key of pendingDeletions.keys) {
|
|
1627
|
-
deleteOps.push(driver.delete(key));
|
|
1628
|
-
}
|
|
1629
|
-
if (deleteOps.length > 0) {
|
|
1630
|
-
await Promise.all(deleteOps);
|
|
1620
|
+
const didChange = await runDeletes(driver, pendingDeletions);
|
|
1621
|
+
if (didChange) {
|
|
1631
1622
|
historyUpdated = true;
|
|
1632
1623
|
}
|
|
1633
1624
|
}
|
|
@@ -1669,10 +1660,36 @@ function splitBatchWrites(writes) {
|
|
|
1669
1660
|
}
|
|
1670
1661
|
return chunks;
|
|
1671
1662
|
}
|
|
1663
|
+
function splitBatchDeletes(keys) {
|
|
1664
|
+
const chunks = [];
|
|
1665
|
+
for (let i = 0; i < keys.length; i += MAX_KV_BATCH_ENTRIES) {
|
|
1666
|
+
chunks.push(keys.slice(i, i + MAX_KV_BATCH_ENTRIES));
|
|
1667
|
+
}
|
|
1668
|
+
return chunks;
|
|
1669
|
+
}
|
|
1670
|
+
async function runDeletes(driver, deletions) {
|
|
1671
|
+
const ops = [
|
|
1672
|
+
...deletions.prefixes.map((prefix) => () => driver.deletePrefix(prefix)),
|
|
1673
|
+
...deletions.ranges.map(
|
|
1674
|
+
(range) => () => driver.deleteRange(range.start, range.end)
|
|
1675
|
+
),
|
|
1676
|
+
...splitBatchDeletes(deletions.keys).map(
|
|
1677
|
+
(chunk) => () => driver.batchDelete(chunk)
|
|
1678
|
+
)
|
|
1679
|
+
];
|
|
1680
|
+
if (ops.length === 0) {
|
|
1681
|
+
return false;
|
|
1682
|
+
}
|
|
1683
|
+
for (let i = 0; i < ops.length; i += MAX_CONCURRENT_DELETES) {
|
|
1684
|
+
await Promise.all(
|
|
1685
|
+
ops.slice(i, i + MAX_CONCURRENT_DELETES).map((op) => op())
|
|
1686
|
+
);
|
|
1687
|
+
}
|
|
1688
|
+
return true;
|
|
1689
|
+
}
|
|
1672
1690
|
async function deleteEntriesWithPrefix(storage, driver, prefixLocation, onHistoryUpdated) {
|
|
1673
1691
|
const deletions = collectDeletionsForPrefix(storage, prefixLocation);
|
|
1674
|
-
await driver
|
|
1675
|
-
await Promise.all(deletions.keys.map((key) => driver.delete(key)));
|
|
1692
|
+
await runDeletes(driver, deletions);
|
|
1676
1693
|
if (deletions.keys.length > 0 && onHistoryUpdated) {
|
|
1677
1694
|
onHistoryUpdated();
|
|
1678
1695
|
}
|
|
@@ -4321,4 +4338,4 @@ async function executeWorkflow(workflowId, workflowFn, input, driver, messageDri
|
|
|
4321
4338
|
|
|
4322
4339
|
|
|
4323
4340
|
exports.extractErrorInfo = extractErrorInfo; exports.CriticalError = CriticalError; exports.RollbackError = RollbackError; exports.RollbackCheckpointError = RollbackCheckpointError; exports.SleepError = SleepError; exports.MessageWaitError = MessageWaitError; exports.EvictedError = EvictedError; exports.HistoryDivergedError = HistoryDivergedError; exports.StepExhaustedError = StepExhaustedError; exports.StepFailedError = StepFailedError; exports.JoinError = JoinError; exports.RaceError = RaceError; exports.CancelledError = CancelledError; exports.EntryInProgressError = EntryInProgressError; exports.keyStartsWith = keyStartsWith; exports.compareKeys = compareKeys; exports.keyToHex = keyToHex; exports.isLoopIterationMarker = isLoopIterationMarker; exports.registerName = registerName; exports.resolveName = resolveName; exports.locationToKey = locationToKey; exports.appendName = appendName; exports.appendLoopIteration = appendLoopIteration; exports.emptyLocation = emptyLocation; exports.parentLocation = parentLocation; exports.isLocationPrefix = isLocationPrefix; exports.locationsEqual = locationsEqual; exports.createStorage = createStorage; exports.createHistorySnapshot = createHistorySnapshot; exports.generateId = generateId; exports.createEntry = createEntry; exports.getOrCreateMetadata = getOrCreateMetadata; exports.loadStorage = loadStorage; exports.loadMetadata = loadMetadata; exports.flush = flush; exports.deleteEntriesWithPrefix = deleteEntriesWithPrefix; exports.getEntry = getEntry; exports.setEntry = setEntry; exports.DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES; exports.DEFAULT_RETRY_BACKOFF_BASE = DEFAULT_RETRY_BACKOFF_BASE; exports.DEFAULT_RETRY_BACKOFF_MAX = DEFAULT_RETRY_BACKOFF_MAX; exports.DEFAULT_LOOP_HISTORY_PRUNE_INTERVAL = DEFAULT_LOOP_HISTORY_PRUNE_INTERVAL; exports.DEFAULT_STEP_TIMEOUT = DEFAULT_STEP_TIMEOUT; exports.WorkflowContextImpl = WorkflowContextImpl; exports.sleep = sleep; exports.Loop = Loop; exports.runWorkflow = runWorkflow; exports.replayWorkflowFromStep = replayWorkflowFromStep;
|
|
4324
|
-
//# sourceMappingURL=chunk-
|
|
4341
|
+
//# sourceMappingURL=chunk-32422MOM.cjs.map
|