aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared-server
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-server
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-server')
-rw-r--r--packages/shared-server/package.json1
-rw-r--r--packages/shared-server/src/plugins.ts1
-rw-r--r--packages/shared-server/src/queues.ts8
3 files changed, 8 insertions, 2 deletions
diff --git a/packages/shared-server/package.json b/packages/shared-server/package.json
index 9c1b52a8..d18eb4a0 100644
--- a/packages/shared-server/package.json
+++ b/packages/shared-server/package.json
@@ -7,6 +7,7 @@
"dependencies": {
"@karakeep/db": "workspace:^0.1.0",
"@karakeep/plugins-queue-liteque": "workspace:^0.1.0",
+ "@karakeep/plugins-queue-restate": "workspace:^0.1.0",
"@karakeep/plugins-search-meilisearch": "workspace:^0.1.0",
"@karakeep/shared": "workspace:^0.1.0"
},
diff --git a/packages/shared-server/src/plugins.ts b/packages/shared-server/src/plugins.ts
index b6a88462..de08b9b0 100644
--- a/packages/shared-server/src/plugins.ts
+++ b/packages/shared-server/src/plugins.ts
@@ -8,6 +8,7 @@ export async function loadAllPlugins() {
// Load plugins here. Order of plugin loading matter.
// Queue provider(s)
await import("@karakeep/plugins-queue-liteque");
+ await import("@karakeep/plugins-queue-restate");
await import("@karakeep/plugins-search-meilisearch");
PluginManager.logAllPlugins();
pluginsLoaded = true;
diff --git a/packages/shared-server/src/queues.ts b/packages/shared-server/src/queues.ts
index 1c4e0452..c9f8276d 100644
--- a/packages/shared-server/src/queues.ts
+++ b/packages/shared-server/src/queues.ts
@@ -8,8 +8,12 @@ import { loadAllPlugins } from ".";
await loadAllPlugins();
const QUEUE_CLIENT = await getQueueClient();
-export function runQueueDBMigrations() {
- QUEUE_CLIENT.init();
+export async function prepareQueue() {
+ await QUEUE_CLIENT.prepare();
+}
+
+export async function startQueue() {
+ await QUEUE_CLIENT.start();
}
// Link Crawler