aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-10-05 07:04:29 +0100
committerGitHub <noreply@github.com>2025-10-05 07:04:29 +0100
commit74a1f7b6b600d4cb53352dde7def374c3125721a (patch)
tree70b79ebae61456f6ff2cb02a37351fa9817fb342 /packages/shared
parent4a580d713621f99abb8baabc9b847ce039d44842 (diff)
downloadkarakeep-74a1f7b6b600d4cb53352dde7def374c3125721a.tar.zst
feat: Restate-based queue plugin (#2011)
* WIP: Initial restate integration * add retry * add delay + idempotency * implement concurrency limits * add admin stats * add todos * add id provider * handle onComplete failures * add tests * add pub key and fix logging * add priorities * fail call after retries * more fixes * fix retries left * some refactoring * fix package.json * upgrade sdk * some test cleanups
Diffstat (limited to 'packages/shared')
-rw-r--r--packages/shared/queueing.ts5
1 files changed, 3 insertions, 2 deletions
diff --git a/packages/shared/queueing.ts b/packages/shared/queueing.ts
index dfe3b31a..e401972b 100644
--- a/packages/shared/queueing.ts
+++ b/packages/shared/queueing.ts
@@ -3,7 +3,6 @@ import { ZodType } from "zod";
import { PluginManager, PluginType } from "./plugins";
export interface EnqueueOptions {
- numRetries?: number;
idempotencyKey?: string;
priority?: number;
delayMs?: number;
@@ -47,6 +46,7 @@ export interface RunnerOptions<T> {
}
export interface Queue<T> {
+ opts: QueueOptions;
name(): string;
enqueue(payload: T, options?: EnqueueOptions): Promise<string | undefined>;
stats(): Promise<{
@@ -65,7 +65,8 @@ export interface Runner<_T> {
}
export interface QueueClient {
- init(): Promise<void>;
+ prepare(): Promise<void>;
+ start(): Promise<void>;
createQueue<T>(name: string, options: QueueOptions): Queue<T>;
createRunner<T>(
queue: Queue<T>,