@synkro/core 0.12.0 → 0.14.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/README.md CHANGED
@@ -10,6 +10,9 @@ Lightweight workflow and state machine orchestrator. Define event-driven workflo
10
10
  - **Workflow Chaining** — Trigger follow-up workflows on completion, success, or failure
11
11
  - **Retry Support** — Configurable retry logic per step
12
12
  - **Transport Options** — Redis for production or in-memory for simple projects and local development
13
+ - **Schema Validation** — Optional payload validation at publish and handler dispatch time
14
+ - **Workflow Timeout** — Configurable timeouts per step or per workflow
15
+ - **Graceful Shutdown** — Drains active handlers before disconnecting
13
16
  - **Simple API** — Single `Synkro` class with minimal configuration
14
17
  - **TypeScript** — Full type support out of the box
15
18
 
@@ -231,6 +234,10 @@ type SynkroOptions = {
231
234
  debug?: boolean;
232
235
  events?: SynkroEvent[];
233
236
  workflows?: SynkroWorkflow[];
237
+ handlers?: object[];
238
+ retention?: RetentionConfig;
239
+ schemas?: Record<string, SchemaValidator>; // global payload validators per event type
240
+ drainTimeout?: number; // ms to wait for in-flight handlers on stop() (default: 5000)
234
241
  };
235
242
  ```
236
243
 
@@ -281,7 +288,7 @@ synkro.on("ValidateStock", async (ctx) => {
281
288
 
282
289
  ### `synkro.stop(): Promise<void>`
283
290
 
284
- Disconnects the transport and cleans up resources.
291
+ Gracefully shuts down. Waits for in-flight handlers to complete (up to `drainTimeout`), then disconnects the transport.
285
292
 
286
293
  ## Types
287
294
 
@@ -294,10 +301,13 @@ type RetryConfig = {
294
301
  retryable?: (error: unknown) => boolean; // skip retries for non-retryable errors
295
302
  };
296
303
 
304
+ type SchemaValidator = (payload: unknown) => void; // throws on invalid
305
+
297
306
  type SynkroEvent = {
298
307
  type: string;
299
308
  handler: HandlerFunction;
300
309
  retry?: RetryConfig;
310
+ schema?: SchemaValidator;
301
311
  };
302
312
 
303
313
  type SynkroWorkflow = {
@@ -306,6 +316,7 @@ type SynkroWorkflow = {
306
316
  onComplete?: string;
307
317
  onSuccess?: string;
308
318
  onFailure?: string;
319
+ timeoutMs?: number; // default timeout for all steps
309
320
  };
310
321
 
311
322
  type SynkroWorkflowStep = {
@@ -314,6 +325,7 @@ type SynkroWorkflowStep = {
314
325
  retry?: RetryConfig;
315
326
  onSuccess?: string;
316
327
  onFailure?: string;
328
+ timeoutMs?: number; // overrides workflow-level timeout
317
329
  };
318
330
 
319
331
  type HandlerCtx = {
@@ -1,16 +1,25 @@
1
+ import { Logger } from "../logger.js";
1
2
  import type { TransportManager } from "../transport/transport.js";
2
- import type { EventInfo, EventMetrics, HandlerFunction, PublishFunction, RetryConfig } from "../types.js";
3
+ import type { EventInfo, EventMetrics, HandlerFunction, PublishFunction, RetentionConfig, RetryConfig, SchemaValidator } from "../types.js";
3
4
  export declare class HandlerRegistry {
4
5
  private redis;
6
+ private readonly logger;
5
7
  private handlers;
6
8
  private processingLocks;
7
9
  private subscribedChannels;
10
+ private schemas;
8
11
  private publishFn;
9
- constructor(redis: TransportManager);
12
+ private readonly lockTtl;
13
+ private readonly dedupTtl;
14
+ private readonly metricsTtl;
15
+ constructor(redis: TransportManager, retention?: RetentionConfig, logger?: Logger);
16
+ get activeCount(): number;
10
17
  setPublishFn(fn: PublishFunction): void;
18
+ registerSchema(eventType: string, schema: SchemaValidator): void;
19
+ getSchema(eventType: string): SchemaValidator | undefined;
11
20
  getEventMetrics(eventType: string): Promise<EventMetrics>;
12
21
  getRegisteredEvents(): EventInfo[];
13
- register(eventType: string, handlerFn: HandlerFunction, retry?: RetryConfig): void;
22
+ register(eventType: string, handlerFn: HandlerFunction, retry?: RetryConfig, schema?: SchemaValidator): void;
14
23
  private handleMessage;
15
24
  private distributedLockKey;
16
25
  private dedupeKey;
@@ -1 +1 @@
1
- {"version":3,"file":"handler-registry.d.ts","sourceRoot":"","sources":["../../src/handlers/handler-registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EAEZ,eAAe,EACf,eAAe,EAEf,WAAW,EACZ,MAAM,aAAa,CAAC;AAuCrB,qBAAa,eAAe;IAOd,OAAO,CAAC,KAAK;IANzB,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,CAAC,SAAS,CAAgC;gBAE7B,KAAK,EAAE,gBAAgB;IAE3C,YAAY,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI;IAIjC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAc/D,mBAAmB,IAAI,SAAS,EAAE;IAWlC,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,eAAe,EAC1B,KAAK,CAAC,EAAE,WAAW,GAClB,IAAI;YAiBO,aAAa;IAmH3B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;YAIH,cAAc;CAgD7B"}
1
+ {"version":3,"file":"handler-registry.d.ts","sourceRoot":"","sources":["../../src/handlers/handler-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EAEZ,eAAe,EACf,eAAe,EACf,eAAe,EAEf,WAAW,EACX,eAAe,EAChB,MAAM,aAAa,CAAC;AAwCrB,qBAAa,eAAe;IAYxB,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,QAAQ,CAAC,MAAM;IAbzB,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,OAAO,CAAsC;IAErD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAGtC,KAAK,EAAE,gBAAgB,EAC/B,SAAS,CAAC,EAAE,eAAe,EACV,MAAM,GAAE,MAAqB;IAOhD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,YAAY,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI;IAIvC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAIhE,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAInD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAc/D,mBAAmB,IAAI,SAAS,EAAE;IAWlC,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,eAAe,EAC1B,KAAK,CAAC,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,eAAe,GACvB,IAAI;YAkBO,aAAa;IA+H3B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;YAIH,cAAc;CAoD7B"}
@@ -1,4 +1,4 @@
1
- import { logger } from "../logger.js";
1
+ import { Logger } from "../logger.js";
2
2
  const DEFAULT_RETRY_DELAY_MS = 1000;
3
3
  function computeRetryDelay(attempt, backoff = "fixed", baseDelayMs = DEFAULT_RETRY_DELAY_MS, jitter = false) {
4
4
  const delay = backoff === "exponential"
@@ -17,20 +17,38 @@ function serializeError(err) {
17
17
  }
18
18
  return { message: String(err) };
19
19
  }
20
- const PROCESSING_LOCK_TTL_SECONDS = 300;
21
- const DEDUPE_TTL_SECONDS = 86400;
20
+ const DEFAULT_LOCK_TTL = 300;
21
+ const DEFAULT_DEDUPE_TTL = 86400;
22
22
  export class HandlerRegistry {
23
23
  redis;
24
+ logger;
24
25
  handlers = new Map();
25
26
  processingLocks = new Set();
26
27
  subscribedChannels = new Set();
28
+ schemas = new Map();
27
29
  publishFn = null;
28
- constructor(redis) {
30
+ lockTtl;
31
+ dedupTtl;
32
+ metricsTtl;
33
+ constructor(redis, retention, logger = new Logger()) {
29
34
  this.redis = redis;
35
+ this.logger = logger;
36
+ this.lockTtl = retention?.lockTtl ?? DEFAULT_LOCK_TTL;
37
+ this.dedupTtl = retention?.dedupTtl ?? DEFAULT_DEDUPE_TTL;
38
+ this.metricsTtl = retention?.metricsTtl;
39
+ }
40
+ get activeCount() {
41
+ return this.processingLocks.size;
30
42
  }
31
43
  setPublishFn(fn) {
32
44
  this.publishFn = fn;
33
45
  }
46
+ registerSchema(eventType, schema) {
47
+ this.schemas.set(eventType, schema);
48
+ }
49
+ getSchema(eventType) {
50
+ return this.schemas.get(eventType);
51
+ }
34
52
  async getEventMetrics(eventType) {
35
53
  const [received, completed, failed] = await Promise.all([
36
54
  this.redis.getCache(`synkro:metrics:${eventType}:received`),
@@ -52,13 +70,14 @@ export class HandlerRegistry {
52
70
  ...(entry.retry && { retry: entry.retry }),
53
71
  })));
54
72
  }
55
- register(eventType, handlerFn, retry) {
73
+ register(eventType, handlerFn, retry, schema) {
56
74
  if (!this.handlers.has(eventType)) {
57
75
  this.handlers.set(eventType, new Set());
58
76
  }
59
77
  this.handlers.get(eventType).add({
60
78
  handler: handlerFn,
61
79
  ...(retry && { retry }),
80
+ ...(schema && { schema }),
62
81
  });
63
82
  if (!this.subscribedChannels.has(eventType)) {
64
83
  this.subscribedChannels.add(eventType);
@@ -77,13 +96,23 @@ export class HandlerRegistry {
77
96
  event = JSON.parse(message);
78
97
  }
79
98
  catch {
80
- logger.error(`[HandlerRegistry] - Malformed message on "${eventType}", dropping: ${message}`);
99
+ this.logger.error(`[HandlerRegistry] - Malformed message on "${eventType}", dropping: ${message}`);
81
100
  return;
82
101
  }
83
102
  if (!event.requestId || typeof event.requestId !== "string") {
84
- logger.error(`[HandlerRegistry] - Missing or invalid requestId on "${eventType}", dropping message`);
103
+ this.logger.error(`[HandlerRegistry] - Missing or invalid requestId on "${eventType}", dropping message`);
85
104
  return;
86
105
  }
106
+ const globalSchema = this.schemas.get(eventType);
107
+ if (globalSchema) {
108
+ try {
109
+ globalSchema(event.payload);
110
+ }
111
+ catch (err) {
112
+ this.logger.error(`[HandlerRegistry] - Schema validation failed for "${eventType}" (requestId: ${event.requestId}): ${err}`);
113
+ return;
114
+ }
115
+ }
87
116
  const localLockKey = `${event.requestId}:${eventType}`;
88
117
  if (this.processingLocks.has(localLockKey)) {
89
118
  return;
@@ -91,34 +120,34 @@ export class HandlerRegistry {
91
120
  const dedupeKey = this.dedupeKey(localLockKey);
92
121
  const alreadyProcessed = await this.redis.getCache(dedupeKey);
93
122
  if (alreadyProcessed === "1") {
94
- logger.debug(`[HandlerRegistry] duplicate message ignored for "${eventType}" (requestId: ${event.requestId})`);
123
+ this.logger.debug(`[HandlerRegistry] duplicate message ignored for "${eventType}" (requestId: ${event.requestId})`);
95
124
  return;
96
125
  }
97
126
  this.processingLocks.add(localLockKey);
98
127
  if (this.processingLocks.size > 1000) {
99
- logger.warn(`[HandlerRegistry] - processingLocks size exceeded 1000 (current: ${this.processingLocks.size})`);
128
+ this.logger.warn(`[HandlerRegistry] - processingLocks size exceeded 1000 (current: ${this.processingLocks.size})`);
100
129
  }
101
130
  const distributedLockKey = this.distributedLockKey(localLockKey);
102
131
  let distributedLockAcquired = false;
103
132
  const trackMetrics = !eventType.startsWith("workflow:");
104
133
  try {
105
- distributedLockAcquired = await this.redis.setCacheIfNotExists(distributedLockKey, "1", PROCESSING_LOCK_TTL_SECONDS);
134
+ distributedLockAcquired = await this.redis.setCacheIfNotExists(distributedLockKey, "1", this.lockTtl);
106
135
  if (!distributedLockAcquired) {
107
- logger.debug(`[HandlerRegistry] in-flight message ignored for "${eventType}" (requestId: ${event.requestId})`);
136
+ this.logger.debug(`[HandlerRegistry] in-flight message ignored for "${eventType}" (requestId: ${event.requestId})`);
108
137
  return;
109
138
  }
110
- logger.debug(`[HandlerRegistry] handleMessage("${eventType}") entries=${entries.size}`);
139
+ this.logger.debug(`[HandlerRegistry] handleMessage("${eventType}") entries=${entries.size}`);
111
140
  if (trackMetrics) {
112
- await this.redis.incrementCache(`synkro:metrics:${eventType}:received`);
141
+ await this.redis.incrementCache(`synkro:metrics:${eventType}:received`, this.metricsTtl);
113
142
  }
114
143
  const results = await Promise.allSettled(Array.from(entries).map((entry) => this.executeHandler(eventType, entry, event)));
115
144
  const allSucceeded = results.every((r) => r.status === "fulfilled");
116
145
  if (trackMetrics) {
117
146
  if (allSucceeded) {
118
- await this.redis.incrementCache(`synkro:metrics:${eventType}:completed`);
147
+ await this.redis.incrementCache(`synkro:metrics:${eventType}:completed`, this.metricsTtl);
119
148
  }
120
149
  else {
121
- await this.redis.incrementCache(`synkro:metrics:${eventType}:failed`);
150
+ await this.redis.incrementCache(`synkro:metrics:${eventType}:failed`, this.metricsTtl);
122
151
  }
123
152
  }
124
153
  const eventPayload = {
@@ -131,7 +160,7 @@ export class HandlerRegistry {
131
160
  .map((r) => serializeError(r.reason));
132
161
  }
133
162
  await this.redis.publishMessage(`event:${eventType}:${allSucceeded ? "completed" : "failed"}`, JSON.stringify(eventPayload));
134
- await this.redis.setCache(dedupeKey, "1", DEDUPE_TTL_SECONDS);
163
+ await this.redis.setCache(dedupeKey, "1", this.dedupTtl);
135
164
  }
136
165
  finally {
137
166
  this.processingLocks.delete(localLockKey);
@@ -159,6 +188,9 @@ export class HandlerRegistry {
159
188
  : data;
160
189
  },
161
190
  };
191
+ if (entry.schema) {
192
+ entry.schema(event.payload);
193
+ }
162
194
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
163
195
  try {
164
196
  await entry.handler(ctx);
@@ -170,11 +202,11 @@ export class HandlerRegistry {
170
202
  : true;
171
203
  if (attempt < maxRetries && isRetryable) {
172
204
  const delay = computeRetryDelay(attempt, entry.retry?.backoff, entry.retry?.delayMs, entry.retry?.jitter);
173
- logger.warn(`[HandlerRegistry] - Handler "${eventType}" failed (attempt ${attempt + 1}/${maxRetries + 1}), retrying in ${delay}ms...`);
205
+ this.logger.warn(`[HandlerRegistry] - Handler "${eventType}" failed (attempt ${attempt + 1}/${maxRetries + 1}), retrying in ${delay}ms...`);
174
206
  await sleep(delay);
175
207
  }
176
208
  else {
177
- logger.error(`[HandlerRegistry] - Handler "${eventType}" failed after ${attempt + 1} attempt(s): ${error}`);
209
+ this.logger.error(`[HandlerRegistry] - Handler "${eventType}" failed after ${attempt + 1} attempt(s): ${error}`);
178
210
  throw error;
179
211
  }
180
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handler-registry.js","sourceRoot":"","sources":["../../src/handlers/handler-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-registry.js","sourceRoot":"","sources":["../../src/handlers/handler-registry.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { Synkro } from "./synkro.js";
2
+ export { Logger } from "./logger.js";
2
3
  export { OnEvent, OnWorkflowStep } from "./handlers/index.js";
3
4
  export type { TransportManager } from "./transport/index.js";
4
- export type { EventInfo, EventMetrics, HandlerCtx, HandlerFunction, PublishFunction, RetryBackoffStrategy, RetryConfig, SynkroEvent, SynkroIntrospection, SynkroOptions, SynkroWorkflow, SynkroWorkflowStep, WorkflowInfo, WorkflowStepInfo, } from "./types.js";
5
+ export type { EventInfo, EventMetrics, HandlerCtx, HandlerFunction, PublishFunction, RetentionConfig, RetryBackoffStrategy, RetryConfig, SchemaValidator, SynkroEvent, SynkroIntrospection, SynkroOptions, SynkroWorkflow, SynkroWorkflowStep, WorkflowInfo, WorkflowStepInfo, } from "./types.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { Synkro } from "./synkro.js";
2
+ export { Logger } from "./logger.js";
2
3
  export { OnEvent, OnWorkflowStep } from "./handlers/index.js";
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/logger.d.ts CHANGED
@@ -1,3 +1,10 @@
1
+ export declare class Logger {
2
+ private debugEnabled;
3
+ constructor(debugEnabled?: boolean);
4
+ debug(...args: unknown[]): void;
5
+ warn(...args: unknown[]): void;
6
+ error(...args: unknown[]): void;
7
+ }
1
8
  export declare function setDebug(enabled: boolean): void;
2
9
  export declare const logger: {
3
10
  debug(...args: unknown[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE/C;AAED,eAAO,MAAM,MAAM;mBACF,OAAO,EAAE,GAAG,IAAI;kBAKjB,OAAO,EAAE,GAAG,IAAI;mBAGf,OAAO,EAAE,GAAG,IAAI;CAGhC,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IACL,OAAO,CAAC,YAAY;gBAAZ,YAAY,GAAE,OAAe;IAEjD,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAGhC;AAID,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE/C;AAED,eAAO,MAAM,MAAM;mBACF,OAAO,EAAE,GAAG,IAAI;kBAKjB,OAAO,EAAE,GAAG,IAAI;mBAGf,OAAO,EAAE,GAAG,IAAI;CAGhC,CAAC"}
package/dist/logger.js CHANGED
@@ -1,3 +1,20 @@
1
+ export class Logger {
2
+ debugEnabled;
3
+ constructor(debugEnabled = false) {
4
+ this.debugEnabled = debugEnabled;
5
+ }
6
+ debug(...args) {
7
+ if (this.debugEnabled) {
8
+ console.log(...args);
9
+ }
10
+ }
11
+ warn(...args) {
12
+ console.warn(...args);
13
+ }
14
+ error(...args) {
15
+ console.error(...args);
16
+ }
17
+ }
1
18
  let debugEnabled = false;
2
19
  export function setDebug(enabled) {
3
20
  debugEnabled = enabled;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,YAAY,GAAG,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,CAAC,GAAG,IAAe;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACG;IAApB,YAAoB,eAAwB,KAAK;QAA7B,iBAAY,GAAZ,YAAY,CAAiB;IAAG,CAAC;IAErD,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAED,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,YAAY,GAAG,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,CAAC,GAAG,IAAe;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;CACF,CAAC"}
package/dist/synkro.d.ts CHANGED
@@ -1,12 +1,14 @@
1
- import type { EventMetrics, HandlerFunction, RetryConfig, SynkroIntrospection, SynkroOptions } from "./types.js";
1
+ import type { EventMetrics, HandlerFunction, RetryConfig, SchemaValidator, SynkroIntrospection, SynkroOptions } from "./types.js";
2
2
  export declare class Synkro {
3
3
  private transport;
4
4
  private handlerRegistry;
5
5
  private workflowRegistry;
6
+ private logger;
7
+ private readonly drainTimeout;
6
8
  private constructor();
7
9
  static start(options: SynkroOptions): Promise<Synkro>;
8
10
  register(...instances: object[]): void;
9
- on(eventType: string, handler: HandlerFunction, retry?: RetryConfig): void;
11
+ on(eventType: string, handler: HandlerFunction, retry?: RetryConfig, schema?: SchemaValidator): void;
10
12
  publish(event: string, payload?: unknown, requestId?: string): Promise<string>;
11
13
  getEventMetrics(eventType: string): Promise<EventMetrics>;
12
14
  introspect(): SynkroIntrospection;
@@ -1 +1 @@
1
- {"version":3,"file":"synkro.d.ts","sourceRoot":"","sources":["../src/synkro.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,aAAa,EAEd,MAAM,YAAY,CAAC;AAGpB,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO;WAOM,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IA4C3D,QAAQ,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAYtC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI;IAIpE,OAAO,CACX,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC;IAeZ,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/D,UAAU,IAAI,mBAAmB;IAO3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CAAC,qBAAqB;CA4B9B"}
1
+ {"version":3,"file":"synkro.d.ts","sourceRoot":"","sources":["../src/synkro.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAEf,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EAEd,MAAM,YAAY,CAAC;AAMpB,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO;WASM,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAoD3D,QAAQ,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAYtC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI;IAI9F,OAAO,CACX,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC;IAoBZ,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/D,UAAU,IAAI,mBAAmB;IAO3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B,OAAO,CAAC,qBAAqB;CA4B9B"}
package/dist/synkro.js CHANGED
@@ -1,23 +1,30 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { HandlerRegistry, discoverEventHandlers, discoverWorkflowStepHandlers, } from "./handlers/index.js";
3
3
  import { InMemoryManager, RedisManager } from "./transport/index.js";
4
- import { setDebug } from "./logger.js";
4
+ import { Logger, setDebug } from "./logger.js";
5
5
  import { WorkflowRegistry } from "./workflows/index.js";
6
+ const DEFAULT_DRAIN_TIMEOUT = 5000;
7
+ const DRAIN_POLL_INTERVAL = 50;
6
8
  export class Synkro {
7
9
  transport;
8
10
  handlerRegistry;
9
11
  workflowRegistry;
10
- constructor(transport) {
12
+ logger;
13
+ drainTimeout;
14
+ constructor(transport, logger, retention, drainTimeout) {
11
15
  this.transport = transport;
12
- this.handlerRegistry = new HandlerRegistry(transport);
13
- this.workflowRegistry = new WorkflowRegistry(transport, this.handlerRegistry);
16
+ this.logger = logger;
17
+ this.drainTimeout = drainTimeout ?? DEFAULT_DRAIN_TIMEOUT;
18
+ this.handlerRegistry = new HandlerRegistry(transport, retention, this.logger);
19
+ this.workflowRegistry = new WorkflowRegistry(transport, this.handlerRegistry, retention, this.logger);
14
20
  this.handlerRegistry.setPublishFn(this.publish.bind(this));
15
21
  }
16
22
  static async start(options) {
17
23
  setDebug(options.debug ?? false);
24
+ const logger = new Logger(options.debug ?? false);
18
25
  let transport;
19
26
  if (options.transport === "in-memory") {
20
- transport = new InMemoryManager();
27
+ transport = new InMemoryManager(logger);
21
28
  }
22
29
  else if (options.transport === "redis" || options.transport === undefined) {
23
30
  if (!options.connectionUrl) {
@@ -28,14 +35,19 @@ export class Synkro {
28
35
  else {
29
36
  throw new Error(`[Synkro] - Invalid transport "${String(options.transport)}". Supported values: "redis", "in-memory"`);
30
37
  }
31
- const instance = new Synkro(transport);
38
+ const instance = new Synkro(transport, logger, options.retention, options.drainTimeout);
32
39
  // Patch decorated workflow step handlers before registering workflows
33
40
  const workflows = options.workflows
34
41
  ? instance.patchWorkflowHandlers(options.workflows, options.handlers ?? [])
35
42
  : [];
43
+ if (options.schemas) {
44
+ for (const [eventType, schema] of Object.entries(options.schemas)) {
45
+ instance.handlerRegistry.registerSchema(eventType, schema);
46
+ }
47
+ }
36
48
  if (options.events) {
37
49
  for (const event of options.events) {
38
- instance.on(event.type, event.handler, event.retry);
50
+ instance.on(event.type, event.handler, event.retry, event.schema);
39
51
  }
40
52
  }
41
53
  if (workflows.length > 0) {
@@ -59,10 +71,14 @@ export class Synkro {
59
71
  }
60
72
  }
61
73
  }
62
- on(eventType, handler, retry) {
63
- this.handlerRegistry.register(eventType, handler, retry);
74
+ on(eventType, handler, retry, schema) {
75
+ this.handlerRegistry.register(eventType, handler, retry, schema);
64
76
  }
65
77
  async publish(event, payload, requestId) {
78
+ const schema = this.handlerRegistry.getSchema(event);
79
+ if (schema) {
80
+ schema(payload);
81
+ }
66
82
  requestId = requestId ?? randomUUID();
67
83
  if (this.workflowRegistry.hasWorkflow(event)) {
68
84
  await this.workflowRegistry.startWorkflow(event, requestId, payload);
@@ -81,6 +97,15 @@ export class Synkro {
81
97
  };
82
98
  }
83
99
  async stop() {
100
+ const deadline = Date.now() + this.drainTimeout;
101
+ while ((this.handlerRegistry.activeCount > 0 || this.workflowRegistry.activeCount > 0) &&
102
+ Date.now() < deadline) {
103
+ await new Promise((resolve) => setTimeout(resolve, DRAIN_POLL_INTERVAL));
104
+ }
105
+ const remaining = this.handlerRegistry.activeCount + this.workflowRegistry.activeCount;
106
+ if (remaining > 0) {
107
+ this.logger.warn(`[Synkro] - Drain timeout reached with ${remaining} active handler(s). Forcing disconnect.`);
108
+ }
84
109
  await this.transport.disconnect();
85
110
  }
86
111
  patchWorkflowHandlers(workflows, handlerInstances) {
@@ -1 +1 @@
1
- {"version":3,"file":"synkro.js","sourceRoot":"","sources":["../src/synkro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synkro.js","sourceRoot":"","sources":["../src/synkro.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
+ import { Logger } from "../logger.js";
1
2
  import type { TransportManager } from "./transport.js";
2
3
  export declare class InMemoryManager implements TransportManager {
3
4
  private subscriptions;
4
5
  private cache;
5
6
  private cacheExpiry;
7
+ private logger;
8
+ constructor(logger?: Logger);
6
9
  publishMessage(channel: string, message: string): Promise<void>;
7
10
  subscribeToChannel(channel: string, callback: (message: string) => void): void;
8
11
  getCache(key: string): Promise<string | null>;
9
12
  setCacheIfNotExists(key: string, value: string, ttlSeconds?: number): Promise<boolean>;
10
13
  setCache(key: string, value: string, ttlSeconds?: number): Promise<void>;
11
14
  deleteCache(key: string): Promise<void>;
12
- incrementCache(key: string): Promise<number>;
15
+ incrementCache(key: string, ttlSeconds?: number): Promise<number>;
13
16
  disconnect(): Promise<void>;
14
17
  private evictIfExpired;
15
18
  private applyTtl;
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/transport/in-memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,aAAa,CAAqD;IAC1E,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,WAAW,CAA6B;IAE1C,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrE,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,IAAI;IAQD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK7C,mBAAmB,CACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAWb,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAKV,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,QAAQ;CAQjB"}
1
+ {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/transport/in-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,aAAa,CAAqD;IAC1E,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM;IAIrB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrE,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,IAAI;IAQD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK7C,mBAAmB,CACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAWb,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAKV,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBjE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,QAAQ;CAQjB"}
@@ -1,8 +1,12 @@
1
- import { logger } from "../logger.js";
1
+ import { Logger } from "../logger.js";
2
2
  export class InMemoryManager {
3
3
  subscriptions = new Map();
4
4
  cache = new Map();
5
5
  cacheExpiry = new Map();
6
+ logger;
7
+ constructor(logger) {
8
+ this.logger = logger ?? new Logger();
9
+ }
6
10
  async publishMessage(channel, message) {
7
11
  const callbacks = this.subscriptions.get(channel);
8
12
  if (!callbacks) {
@@ -17,7 +21,7 @@ export class InMemoryManager {
17
21
  this.subscriptions.set(channel, new Set());
18
22
  }
19
23
  this.subscriptions.get(channel).add(callback);
20
- logger.debug(`Subscribed to channel "${channel}" (in-memory).`);
24
+ this.logger.debug(`Subscribed to channel "${channel}" (in-memory).`);
21
25
  }
22
26
  async getCache(key) {
23
27
  this.evictIfExpired(key);
@@ -40,14 +44,19 @@ export class InMemoryManager {
40
44
  this.cache.delete(key);
41
45
  this.cacheExpiry.delete(key);
42
46
  }
43
- async incrementCache(key) {
47
+ async incrementCache(key, ttlSeconds) {
44
48
  this.evictIfExpired(key);
45
- const expiresAt = this.cacheExpiry.get(key);
46
49
  const current = Number(this.cache.get(key) ?? 0);
47
50
  const next = current + 1;
48
51
  this.cache.set(key, String(next));
49
- if (expiresAt !== undefined) {
50
- this.cacheExpiry.set(key, expiresAt);
52
+ if (ttlSeconds) {
53
+ this.applyTtl(key, ttlSeconds);
54
+ }
55
+ else {
56
+ const expiresAt = this.cacheExpiry.get(key);
57
+ if (expiresAt !== undefined) {
58
+ this.cacheExpiry.set(key, expiresAt);
59
+ }
51
60
  }
52
61
  return next;
53
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../../src/transport/in-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../../src/transport/in-memory.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export declare class RedisManager implements TransportManager {
17
17
  setCacheIfNotExists(key: string, value: string, ttlSeconds?: number): Promise<boolean>;
18
18
  setCache(key: string, value: string, ttlSeconds?: number): Promise<void>;
19
19
  deleteCache(key: string): Promise<void>;
20
- incrementCache(key: string): Promise<number>;
20
+ incrementCache(key: string, ttlSeconds?: number): Promise<number>;
21
21
  disconnect(): Promise<void>;
22
22
  private createClient;
23
23
  private static readonly REQUEST_ID_RE;
@@ -1 +1 @@
1
- {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/transport/redis.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,qBAAa,YAAa,YAAW,gBAAgB;IACnD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,gBAAgB,CACZ;IACZ,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAS;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAU;gBAEzC,QAAQ,EAAE,MAAM;IA2BtB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,IAAI;IAkBP,OAAO,CAAC,kBAAkB;IAiBpB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI7C,mBAAmB,CACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAOb,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAQV,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAA2B;IAEhE,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,kBAAkB;CAS3B"}
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/transport/redis.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,qBAAa,YAAa,YAAW,gBAAgB;IACnD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,gBAAgB,CACZ;IACZ,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAS;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAU;gBAEzC,QAAQ,EAAE,MAAM;IA2BtB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,IAAI;IAkBP,OAAO,CAAC,kBAAkB;IAiBpB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI7C,mBAAmB,CACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAOb,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAQV,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAA2B;IAEhE,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -84,8 +84,12 @@ export class RedisManager {
84
84
  async deleteCache(key) {
85
85
  await this.cacheClient.del(key);
86
86
  }
87
- async incrementCache(key) {
88
- return await this.cacheClient.incr(key);
87
+ async incrementCache(key, ttlSeconds) {
88
+ const value = await this.cacheClient.incr(key);
89
+ if (ttlSeconds) {
90
+ await this.cacheClient.expire(key, ttlSeconds);
91
+ }
92
+ return value;
89
93
  }
90
94
  async disconnect() {
91
95
  await this.publisher.quit();
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/transport/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,MAAM,OAAO,YAAY;IACf,SAAS,CAAQ;IACjB,UAAU,CAAQ;IAClB,WAAW,CAAQ;IACnB,gBAAgB,GACtB,IAAI,GAAG,EAAE,CAAC;IACJ,oBAAoB,GAAa,EAAE,CAAC;IACpC,cAAc,GAAG,KAAK,CAAC;IACvB,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,CAAU,eAAe,GAAG,KAAK,CAAC;IACxC,MAAM,CAAU,mBAAmB,GAAG,MAAM,CAAC;IAErD,YAAY,QAAgB;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAe,EAAE,OAAe,EAAE,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC;YACpF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,8BAA8B,OAAO,OAAO,SAAS,CAAC,IAAI,cAAc,CAAC,CAAC;gBACvF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,OAAe;QACnD,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,kBAAkB,CAChB,OAAe,EACf,QAAmC;QAEnC,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEzD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,sCAAsC,OAAO,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,IAAI,cAAc,CAAC,CAAC;QAE9H,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,IAAI,CAAC,UAAU;aACZ,SAAS,CAAC,GAAG,QAAQ,CAAC;aACtB,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,MAAM,CAAC,KAAK,CACV,iBAAiB,KAAK,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5D,CAAC;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,GAAW,EACX,KAAa,EACb,UAAmB;QAEnB,MAAM,MAAM,GAAG,UAAU;YACvB,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC;YAChE,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,MAAM,KAAK,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,GAAW,EACX,KAAa,EACb,UAAmB;QAEnB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAW;QAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAEO,YAAY,CAAC,QAAgB,EAAE,IAAY;QACjD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;YACjC,aAAa,CAAC,KAAK;gBACjB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC1C,MAAM,CAAC,IAAI,CACT,kBAAkB,IAAI,sBAAsB,KAAK,OAAO,KAAK,IAAI,CAClE,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAChC,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,YAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAU,aAAa,GAAG,uBAAuB,CAAC;IAExD,gBAAgB,CAAC,OAAe;QACtC,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5B,CAAC;IAEO,kBAAkB,CAAC,GAAW;QACpC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,YAAY,CAAC,mBAAmB;YAAE,OAAO;QAEzE,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACnD,IAAI,GAAG,GAAG,SAAS,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;gBACnD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/transport/redis.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export interface TransportManager {
5
5
  getCache(key: string): Promise<string | null>;
6
6
  setCache(key: string, value: string, ttlSeconds?: number): Promise<void>;
7
7
  deleteCache(key: string): Promise<void>;
8
- incrementCache(key: string): Promise<number>;
8
+ incrementCache(key: string, ttlSeconds?: number): Promise<number>;
9
9
  disconnect(): Promise<void>;
10
10
  }
11
11
  //# sourceMappingURL=transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,IAAI,CAAC;IACR,mBAAmB,CACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,IAAI,CAAC;IACR,mBAAmB,CACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B"}
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export type SchemaValidator = (payload: unknown) => void;
1
2
  export type RetryBackoffStrategy = "fixed" | "exponential";
2
3
  export type RetryConfig = {
3
4
  maxRetries: number;
@@ -10,6 +11,7 @@ export type SynkroEvent = {
10
11
  type: string;
11
12
  handler: HandlerFunction;
12
13
  retry?: RetryConfig;
14
+ schema?: SchemaValidator;
13
15
  };
14
16
  export type SynkroWorkflowStep = {
15
17
  type: string;
@@ -17,6 +19,7 @@ export type SynkroWorkflowStep = {
17
19
  retry?: RetryConfig;
18
20
  onSuccess?: string;
19
21
  onFailure?: string;
22
+ timeoutMs?: number;
20
23
  };
21
24
  export type SynkroWorkflow = {
22
25
  name: string;
@@ -24,6 +27,13 @@ export type SynkroWorkflow = {
24
27
  onComplete?: string;
25
28
  onSuccess?: string;
26
29
  onFailure?: string;
30
+ timeoutMs?: number;
31
+ };
32
+ export type RetentionConfig = {
33
+ lockTtl?: number;
34
+ dedupTtl?: number;
35
+ stateTtl?: number;
36
+ metricsTtl?: number;
27
37
  };
28
38
  export type SynkroOptions = {
29
39
  transport?: "redis" | "in-memory";
@@ -32,6 +42,9 @@ export type SynkroOptions = {
32
42
  events?: SynkroEvent[];
33
43
  workflows?: SynkroWorkflow[];
34
44
  handlers?: object[];
45
+ retention?: RetentionConfig;
46
+ schemas?: Record<string, SchemaValidator>;
47
+ drainTimeout?: number;
35
48
  };
36
49
  export type PublishFunction = (event: string, payload?: unknown, requestId?: string) => Promise<string>;
37
50
  export type HandlerCtx = {
@@ -50,6 +63,7 @@ export type WorkflowStepInfo = {
50
63
  retry?: RetryConfig;
51
64
  onSuccess?: string;
52
65
  onFailure?: string;
66
+ timeoutMs?: number;
53
67
  };
54
68
  export type WorkflowInfo = {
55
69
  name: string;
@@ -57,6 +71,7 @@ export type WorkflowInfo = {
57
71
  onComplete?: string;
58
72
  onSuccess?: string;
59
73
  onFailure?: string;
74
+ timeoutMs?: number;
60
75
  };
61
76
  export type SynkroIntrospection = {
62
77
  events: EventInfo[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,eAAe,CAAC;IACzB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAExE,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -1,15 +1,22 @@
1
+ import { Logger } from "../logger.js";
1
2
  import type { HandlerRegistry } from "../handlers/handler-registry.js";
2
3
  import type { TransportManager } from "../transport/transport.js";
3
- import type { HandlerFunction, SynkroWorkflow, WorkflowInfo } from "../types.js";
4
+ import type { HandlerFunction, RetentionConfig, SynkroWorkflow, WorkflowInfo } from "../types.js";
4
5
  export declare class WorkflowRegistry {
5
6
  private redis;
6
7
  private handlerRegistry;
8
+ private readonly logger;
7
9
  private workflows;
8
10
  private branchTargets;
9
11
  private processingLocks;
10
12
  private lockQueues;
11
- constructor(redis: TransportManager, handlerRegistry: HandlerRegistry);
13
+ private activeTimers;
14
+ private readonly lockTtl;
15
+ private readonly dedupTtl;
16
+ private readonly stateTtl;
17
+ constructor(redis: TransportManager, handlerRegistry: HandlerRegistry, retention?: RetentionConfig, logger?: Logger);
12
18
  private withLock;
19
+ get activeCount(): number;
13
20
  getRegisteredWorkflows(): WorkflowInfo[];
14
21
  registerWorkflows(workflows: SynkroWorkflow[]): void;
15
22
  registerStepHandler(workflowName: string, stepType: string, handler: HandlerFunction): void;
@@ -20,6 +27,10 @@ export declare class WorkflowRegistry {
20
27
  private handleStepFailure;
21
28
  private routeToStep;
22
29
  private triggerNextWorkflows;
30
+ private timerKey;
31
+ private startStepTimer;
32
+ private clearStepTimer;
33
+ private clearAllTimers;
23
34
  private findNextStep;
24
35
  private findStepIndex;
25
36
  private stepChannel;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-registry.d.ts","sourceRoot":"","sources":["../../src/workflows/workflow-registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWjF,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,eAAe;IAPzB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,UAAU,CAAoC;gBAG5C,KAAK,EAAE,gBAAgB,EACvB,eAAe,EAAE,eAAe;YAG5B,QAAQ;IAqBtB,sBAAsB,IAAI,YAAY,EAAE;IAexC,iBAAiB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;IA4BpD,mBAAmB,CACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,GACvB,IAAI;IAaP,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI5B,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAwBhB,OAAO,CAAC,yBAAyB;YA6BnB,oBAAoB;YAyDpB,iBAAiB;YA4CjB,WAAW;YAsBX,oBAAoB;IAgClC,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,QAAQ;YAIF,uBAAuB;IAoDrC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;YAqBH,SAAS;YAWT,QAAQ;CAKvB"}
1
+ {"version":3,"file":"workflow-registry.d.ts","sourceRoot":"","sources":["../../src/workflows/workflow-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAYlG,qBAAa,gBAAgB;IAWzB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,eAAe;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAbzB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,YAAY,CAAoD;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGxB,KAAK,EAAE,gBAAgB,EACvB,eAAe,EAAE,eAAe,EACxC,SAAS,CAAC,EAAE,eAAe,EACV,MAAM,GAAE,MAAqB;YAOlC,QAAQ;IAqBtB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,sBAAsB,IAAI,YAAY,EAAE;IAiBxC,iBAAiB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;IA4BpD,mBAAmB,CACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,GACvB,IAAI;IAaP,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI5B,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAyBhB,OAAO,CAAC,yBAAyB;YA6BnB,oBAAoB;YA4DpB,iBAAiB;YA+CjB,WAAW;YAuBX,oBAAoB;IAgClC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,QAAQ;YAIF,uBAAuB;IAoDrC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;YAqBH,SAAS;YAWT,QAAQ;CAKvB"}
@@ -1,16 +1,26 @@
1
- import { logger } from "../logger.js";
2
- const PROCESSING_LOCK_TTL_SECONDS = 300;
3
- const DEDUPE_TTL_SECONDS = 86400;
1
+ import { Logger } from "../logger.js";
2
+ const DEFAULT_LOCK_TTL = 300;
3
+ const DEFAULT_DEDUPE_TTL = 86400;
4
+ const DEFAULT_STATE_TTL = 86400;
4
5
  export class WorkflowRegistry {
5
6
  redis;
6
7
  handlerRegistry;
8
+ logger;
7
9
  workflows = new Map();
8
10
  branchTargets = new Map();
9
11
  processingLocks = new Set();
10
12
  lockQueues = new Map();
11
- constructor(redis, handlerRegistry) {
13
+ activeTimers = new Map();
14
+ lockTtl;
15
+ dedupTtl;
16
+ stateTtl;
17
+ constructor(redis, handlerRegistry, retention, logger = new Logger()) {
12
18
  this.redis = redis;
13
19
  this.handlerRegistry = handlerRegistry;
20
+ this.logger = logger;
21
+ this.lockTtl = retention?.lockTtl ?? DEFAULT_LOCK_TTL;
22
+ this.dedupTtl = retention?.dedupTtl ?? DEFAULT_DEDUPE_TTL;
23
+ this.stateTtl = retention?.stateTtl ?? DEFAULT_STATE_TTL;
14
24
  }
15
25
  async withLock(lockKey, fn) {
16
26
  const prev = this.lockQueues.get(lockKey) ?? Promise.resolve();
@@ -30,6 +40,9 @@ export class WorkflowRegistry {
30
40
  resolve();
31
41
  }
32
42
  }
43
+ get activeCount() {
44
+ return this.processingLocks.size;
45
+ }
33
46
  getRegisteredWorkflows() {
34
47
  return Array.from(this.workflows.values()).map((w) => ({
35
48
  name: w.name,
@@ -38,10 +51,12 @@ export class WorkflowRegistry {
38
51
  ...(s.retry && { retry: s.retry }),
39
52
  ...(s.onSuccess && { onSuccess: s.onSuccess }),
40
53
  ...(s.onFailure && { onFailure: s.onFailure }),
54
+ ...(s.timeoutMs && { timeoutMs: s.timeoutMs }),
41
55
  })),
42
56
  ...(w.onComplete && { onComplete: w.onComplete }),
43
57
  ...(w.onSuccess && { onSuccess: w.onSuccess }),
44
58
  ...(w.onFailure && { onFailure: w.onFailure }),
59
+ ...(w.timeoutMs && { timeoutMs: w.timeoutMs }),
45
60
  }));
46
61
  }
47
62
  registerWorkflows(workflows) {
@@ -65,13 +80,13 @@ export class WorkflowRegistry {
65
80
  }
66
81
  }
67
82
  this.subscribeToWorkflowEvents(workflow);
68
- logger.debug(`[WorkflowRegistry] - Workflow "${workflow.name}" registered with ${workflow.steps.length} steps`);
83
+ this.logger.debug(`[WorkflowRegistry] - Workflow "${workflow.name}" registered with ${workflow.steps.length} steps`);
69
84
  }
70
85
  }
71
86
  registerStepHandler(workflowName, stepType, handler) {
72
87
  const workflow = this.workflows.get(workflowName);
73
88
  if (!workflow) {
74
- logger.warn(`[WorkflowRegistry] - Workflow "${workflowName}" not found for step handler "${stepType}"`);
89
+ this.logger.warn(`[WorkflowRegistry] - Workflow "${workflowName}" not found for step handler "${stepType}"`);
75
90
  return;
76
91
  }
77
92
  const channel = this.stepChannel(workflowName, stepType);
@@ -93,8 +108,9 @@ export class WorkflowRegistry {
93
108
  await this.saveState(requestId, state);
94
109
  const firstStep = workflow.steps[0];
95
110
  const channel = this.stepChannel(workflowName, firstStep.type);
96
- logger.debug(`[WorkflowRegistry] - Starting workflow "${workflowName}" (requestId: ${requestId}), publishing "${firstStep.type}"`);
111
+ this.logger.debug(`[WorkflowRegistry] - Starting workflow "${workflowName}" (requestId: ${requestId}), publishing "${firstStep.type}"`);
97
112
  await this.redis.publishMessage(channel, JSON.stringify({ requestId, payload }));
113
+ this.startStepTimer(workflow, 0, requestId, payload);
98
114
  }
99
115
  subscribeToWorkflowEvents(workflow) {
100
116
  for (let i = 0; i < workflow.steps.length; i++) {
@@ -117,12 +133,13 @@ export class WorkflowRegistry {
117
133
  async handleStepCompletion(workflow, stepIndex, requestId, payload) {
118
134
  const lockKey = `${requestId}:${workflow.name}:completion:${stepIndex}`;
119
135
  await this.withStepTransitionClaim(lockKey, async () => {
136
+ this.clearStepTimer(requestId, workflow.name, stepIndex);
120
137
  const state = await this.getState(requestId, workflow.name);
121
138
  if (!state || state.workflowName !== workflow.name || state.status !== "running") {
122
139
  return;
123
140
  }
124
141
  if (state.currentStep !== stepIndex) {
125
- logger.debug(`[WorkflowRegistry] - Ignoring stale completion for "${workflow.name}" (requestId: ${requestId}): expected step ${state.currentStep}, got ${stepIndex}`);
142
+ this.logger.debug(`[WorkflowRegistry] - Ignoring stale completion for "${workflow.name}" (requestId: ${requestId}): expected step ${state.currentStep}, got ${stepIndex}`);
126
143
  return;
127
144
  }
128
145
  const currentStep = workflow.steps[stepIndex];
@@ -130,7 +147,7 @@ export class WorkflowRegistry {
130
147
  if (onSuccess) {
131
148
  const targetIndex = this.findStepIndex(workflow, onSuccess);
132
149
  if (targetIndex === -1) {
133
- logger.error(`[WorkflowRegistry] - onSuccess target "${onSuccess}" not found in workflow "${workflow.name}"`);
150
+ this.logger.error(`[WorkflowRegistry] - onSuccess target "${onSuccess}" not found in workflow "${workflow.name}"`);
134
151
  return;
135
152
  }
136
153
  await this.routeToStep(workflow, requestId, targetIndex, payload);
@@ -138,10 +155,11 @@ export class WorkflowRegistry {
138
155
  }
139
156
  const nextStepIndex = this.findNextStep(workflow, stepIndex);
140
157
  if (nextStepIndex === -1) {
158
+ this.clearAllTimers(requestId, workflow.name, workflow.steps.length);
141
159
  state.status = "completed";
142
160
  state.currentStep = stepIndex;
143
161
  await this.saveState(requestId, state);
144
- logger.debug(`[WorkflowRegistry] - Workflow "${workflow.name}" completed (requestId: ${requestId})`);
162
+ this.logger.debug(`[WorkflowRegistry] - Workflow "${workflow.name}" completed (requestId: ${requestId})`);
145
163
  await this.triggerNextWorkflows(workflow, "completed", requestId, payload);
146
164
  return;
147
165
  }
@@ -151,12 +169,13 @@ export class WorkflowRegistry {
151
169
  async handleStepFailure(workflow, stepIndex, requestId, payload) {
152
170
  const lockKey = `${requestId}:${workflow.name}:failure:${stepIndex}`;
153
171
  await this.withStepTransitionClaim(lockKey, async () => {
172
+ this.clearStepTimer(requestId, workflow.name, stepIndex);
154
173
  const state = await this.getState(requestId, workflow.name);
155
174
  if (!state || state.workflowName !== workflow.name || state.status !== "running") {
156
175
  return;
157
176
  }
158
177
  if (state.currentStep !== stepIndex) {
159
- logger.debug(`[WorkflowRegistry] - Ignoring stale failure for "${workflow.name}" (requestId: ${requestId}): expected step ${state.currentStep}, got ${stepIndex}`);
178
+ this.logger.debug(`[WorkflowRegistry] - Ignoring stale failure for "${workflow.name}" (requestId: ${requestId}): expected step ${state.currentStep}, got ${stepIndex}`);
160
179
  return;
161
180
  }
162
181
  const currentStep = workflow.steps[stepIndex];
@@ -164,15 +183,16 @@ export class WorkflowRegistry {
164
183
  if (onFailure) {
165
184
  const targetIndex = this.findStepIndex(workflow, onFailure);
166
185
  if (targetIndex === -1) {
167
- logger.error(`[WorkflowRegistry] - onFailure target "${onFailure}" not found in workflow "${workflow.name}"`);
186
+ this.logger.error(`[WorkflowRegistry] - onFailure target "${onFailure}" not found in workflow "${workflow.name}"`);
168
187
  return;
169
188
  }
170
189
  await this.routeToStep(workflow, requestId, targetIndex, payload);
171
190
  return;
172
191
  }
192
+ this.clearAllTimers(requestId, workflow.name, workflow.steps.length);
173
193
  state.status = "failed";
174
194
  await this.saveState(requestId, state);
175
- logger.error(`[WorkflowRegistry] - Workflow "${workflow.name}" failed at step "${currentStep.type}" (requestId: ${requestId})`);
195
+ this.logger.error(`[WorkflowRegistry] - Workflow "${workflow.name}" failed at step "${currentStep.type}" (requestId: ${requestId})`);
176
196
  await this.triggerNextWorkflows(workflow, "failed", requestId, payload);
177
197
  });
178
198
  }
@@ -185,8 +205,9 @@ export class WorkflowRegistry {
185
205
  await this.saveState(requestId, state);
186
206
  const targetStep = workflow.steps[targetIndex];
187
207
  const channel = this.stepChannel(workflow.name, targetStep.type);
188
- logger.debug(`[WorkflowRegistry] - Workflow "${workflow.name}" advancing to step ${targetIndex}: "${targetStep.type}" (requestId: ${requestId})`);
208
+ this.logger.debug(`[WorkflowRegistry] - Workflow "${workflow.name}" advancing to step ${targetIndex}: "${targetStep.type}" (requestId: ${requestId})`);
189
209
  await this.redis.publishMessage(channel, JSON.stringify({ requestId, payload }));
210
+ this.startStepTimer(workflow, targetIndex, requestId, payload);
190
211
  }
191
212
  async triggerNextWorkflows(workflow, outcome, requestId, payload) {
192
213
  const targets = [];
@@ -201,14 +222,48 @@ export class WorkflowRegistry {
201
222
  }
202
223
  for (const target of targets) {
203
224
  if (this.workflows.has(target)) {
204
- logger.debug(`[WorkflowRegistry] - Workflow "${workflow.name}" triggering workflow "${target}" (requestId: ${requestId})`);
225
+ this.logger.debug(`[WorkflowRegistry] - Workflow "${workflow.name}" triggering workflow "${target}" (requestId: ${requestId})`);
205
226
  await this.startWorkflow(target, requestId, payload);
206
227
  }
207
228
  else {
208
- logger.error(`[WorkflowRegistry] - Chained workflow "${target}" not found (from "${workflow.name}")`);
229
+ this.logger.error(`[WorkflowRegistry] - Chained workflow "${target}" not found (from "${workflow.name}")`);
209
230
  }
210
231
  }
211
232
  }
233
+ timerKey(requestId, workflowName, stepIndex) {
234
+ return `${requestId}:${workflowName}:${stepIndex}`;
235
+ }
236
+ startStepTimer(workflow, stepIndex, requestId, payload) {
237
+ const step = workflow.steps[stepIndex];
238
+ const timeoutMs = step.timeoutMs ?? workflow.timeoutMs;
239
+ if (!timeoutMs)
240
+ return;
241
+ const key = this.timerKey(requestId, workflow.name, stepIndex);
242
+ const channel = this.stepChannel(workflow.name, step.type);
243
+ const timer = setTimeout(() => {
244
+ this.activeTimers.delete(key);
245
+ this.logger.warn(`[WorkflowRegistry] - Step "${step.type}" timed out after ${timeoutMs}ms in workflow "${workflow.name}" (requestId: ${requestId})`);
246
+ void this.redis.publishMessage(`event:${channel}:failed`, JSON.stringify({
247
+ requestId,
248
+ payload,
249
+ errors: [{ message: `Step "${step.type}" timed out after ${timeoutMs}ms`, name: "TimeoutError" }],
250
+ }));
251
+ }, timeoutMs);
252
+ this.activeTimers.set(key, timer);
253
+ }
254
+ clearStepTimer(requestId, workflowName, stepIndex) {
255
+ const key = this.timerKey(requestId, workflowName, stepIndex);
256
+ const timer = this.activeTimers.get(key);
257
+ if (timer) {
258
+ clearTimeout(timer);
259
+ this.activeTimers.delete(key);
260
+ }
261
+ }
262
+ clearAllTimers(requestId, workflowName, stepCount) {
263
+ for (let i = 0; i < stepCount; i++) {
264
+ this.clearStepTimer(requestId, workflowName, i);
265
+ }
266
+ }
212
267
  findNextStep(workflow, currentIndex) {
213
268
  const targets = this.branchTargets.get(workflow.name);
214
269
  for (let i = currentIndex + 1; i < workflow.steps.length; i++) {
@@ -265,18 +320,18 @@ export class WorkflowRegistry {
265
320
  const dedupeKey = this.dedupeKey(lockKey);
266
321
  const alreadyProcessed = await this.redis.getCache(dedupeKey);
267
322
  if (alreadyProcessed === "1") {
268
- logger.debug(`[WorkflowRegistry] - Duplicate transition ignored (${lockKey})`);
323
+ this.logger.debug(`[WorkflowRegistry] - Duplicate transition ignored (${lockKey})`);
269
324
  return;
270
325
  }
271
326
  this.processingLocks.add(lockKey);
272
327
  if (this.processingLocks.size > 1000) {
273
- logger.warn(`[WorkflowRegistry] - processingLocks size exceeded 1000 (current: ${this.processingLocks.size})`);
328
+ this.logger.warn(`[WorkflowRegistry] - processingLocks size exceeded 1000 (current: ${this.processingLocks.size})`);
274
329
  }
275
330
  const distributedLockKey = this.distributedLockKey(lockKey);
276
331
  let distributedLockAcquired = false;
277
332
  let completed = false;
278
333
  try {
279
- distributedLockAcquired = await this.redis.setCacheIfNotExists(distributedLockKey, "1", PROCESSING_LOCK_TTL_SECONDS);
334
+ distributedLockAcquired = await this.redis.setCacheIfNotExists(distributedLockKey, "1", this.lockTtl);
280
335
  if (!distributedLockAcquired) {
281
336
  return;
282
337
  }
@@ -286,7 +341,7 @@ export class WorkflowRegistry {
286
341
  finally {
287
342
  this.processingLocks.delete(lockKey);
288
343
  if (completed) {
289
- await this.redis.setCache(dedupeKey, "1", DEDUPE_TTL_SECONDS);
344
+ await this.redis.setCache(dedupeKey, "1", this.dedupTtl);
290
345
  }
291
346
  if (distributedLockAcquired) {
292
347
  await this.redis.deleteCache(distributedLockKey);
@@ -305,17 +360,17 @@ export class WorkflowRegistry {
305
360
  parsed = JSON.parse(message);
306
361
  }
307
362
  catch {
308
- logger.error(`[WorkflowRegistry] - Malformed message, dropping: ${message}`);
363
+ this.logger.error(`[WorkflowRegistry] - Malformed message, dropping: ${message}`);
309
364
  return null;
310
365
  }
311
366
  if (!parsed.requestId || typeof parsed.requestId !== "string") {
312
- logger.error(`[WorkflowRegistry] - Missing or invalid requestId, dropping message`);
367
+ this.logger.error(`[WorkflowRegistry] - Missing or invalid requestId, dropping message`);
313
368
  return null;
314
369
  }
315
370
  return parsed;
316
371
  }
317
372
  async saveState(requestId, state) {
318
- await this.redis.setCache(this.stateKey(requestId, state.workflowName), JSON.stringify(state), 86400);
373
+ await this.redis.setCache(this.stateKey(requestId, state.workflowName), JSON.stringify(state), this.stateTtl);
319
374
  }
320
375
  async getState(requestId, workflowName) {
321
376
  const raw = await this.redis.getCache(this.stateKey(requestId, workflowName));
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-registry.js","sourceRoot":"","sources":["../../src/workflows/workflow-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-registry.js","sourceRoot":"","sources":["../../src/workflows/workflow-registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synkro/core",
3
- "version": "0.12.0",
3
+ "version": "0.14.0",
4
4
  "description": "Lightweight workflow and state machine orchestrator powered by Redis. Define event-driven workflows via configuration or code.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",