@adonis-agora/durable 0.52.0 → 0.52.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @adonis-agora/durable
2
2
 
3
+ ## 0.52.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#390](https://github.com/DavideCarvalho/adonis-agora-durable/pull/390) [`83bf740`](https://github.com/DavideCarvalho/adonis-agora-durable/commit/83bf7406538916d22cae0245b99b7aff321b92b7) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Schedule jitter follow-ups: `runSchedules` documents that it must be called with the same `engine` object every time (deferred windows are remembered per engine), and it drops a schedule's jitter memo once the schedule no longer has a jitter.
8
+
9
+ ## 0.52.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#389](https://github.com/DavideCarvalho/adonis-agora-durable/pull/389) [`0343752`](https://github.com/DavideCarvalho/adonis-agora-durable/commit/034375223d1a78ff058a1d99b9cb3ef23cf7bac1) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Schedule `jitter` no longer blocks the worker tick. `runSchedules` used to `sleep` each due schedule's jitter inside the tick, one schedule after another, so every other schedule and the rest of the tick (pending runs, timers, recovery) waited behind it. After a restart, with several jittered windows due at once, schedules fired many minutes late: about 7, then 5 minutes, on an app with 90–120 s jitters. Each window now gets its own fire time, up to `jitter` after the worker first sees it due, and a later tick starts it once that time has arrived. A window deferred past its interval still fires. Run ids and exactly-once are unchanged. The `sleep` option of `runSchedules` is deprecated and no longer called.
14
+
3
15
  ## 0.52.0
4
16
 
5
17
  ### Minor Changes
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.52.0";
2
+ export declare const VERSION = "0.52.2";
3
3
  export type { AccessDeniedInfo, AccessDeniedPageOptions, AccessDeniedReason, } from './access_denied_page.js';
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  export type { AuthMode, DashboardAuthOptions, LoginHook, LoginOutcome, ResolvedDashboardAuth, SessionHook, SessionOutcome, } from './auth.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.52.0';
2
+ export const VERSION = '0.52.2';
3
3
  // The built-in "access denied" page (what a browser sees on a refused page navigation).
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  // Built-in `dashboardAuth` login screen (optional; opt-in via `config/durable_dashboard.ts`).
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.52.0";
2
+ export declare const VERSION = "0.52.2";
3
3
  export { configure } from '../configure.js';
4
4
  export * from './admission.js';
5
5
  export type { AdmissionContext, AdmissionFactory, RedisAdmissionConfig, } from './admissions/factory.js';
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.52.0';
2
+ export const VERSION = '0.52.2';
3
3
  // Re-export the configure hook from the package root so `node ace configure` finds it.
4
4
  // AdonisJS imports the package MAIN and reads `configure` off the module namespace —
5
5
  // the `./configure` subpath alone is never consulted.
@@ -53,6 +53,8 @@ export interface ScheduledWorkflow<W extends ScheduleWorkflowRef = ScheduleWorkf
53
53
  /**
54
54
  * Randomly delay the dispatch by up to this many ms BEFORE firing, to spread load when many
55
55
  * instances tick on the same boundary (avoids a thundering herd). Opt-in; absent = fire immediately.
56
+ * The window is deferred to a later tick, never waited for inside one, so a jittered schedule does
57
+ * not hold up any other schedule or the rest of the worker tick.
56
58
  *
57
59
  * This is dispatch-path jitter only — it does NOT affect the run id (still the time bucket), so
58
60
  * idempotency is unchanged: two instances jittering the same window still start it exactly once.
@@ -96,9 +98,13 @@ export interface WorkflowScheduleConfig extends Omit<ScheduledWorkflow, 'workflo
96
98
  key?: string;
97
99
  }
98
100
  /** Injectable dispatch-path effects (kept out of the deterministic run-id logic). Defaults to real
99
- * `Math.random` + `setTimeout`; overridden in tests so jitter is deterministic and instant. */
101
+ * `Math.random`; overridden in tests so jitter is deterministic. */
100
102
  export interface RunSchedulesOptions {
101
103
  random?: () => number;
104
+ /**
105
+ * @deprecated No longer called: jitter defers a window to a later tick instead of sleeping inside
106
+ * this one. Kept so existing callers still type-check.
107
+ */
102
108
  sleep?: (ms: number) => Promise<void>;
103
109
  }
104
110
  /** Deterministic run id for a fixed-interval schedule's current time window. */
@@ -166,7 +172,11 @@ export declare function resolveSchedules(schedules: readonly ScheduledWorkflow[]
166
172
  * Start each schedule's current-window run. The run id is the time bucket (a fixed-interval index,
167
173
  * or the cron fire time) and `engine.start` is idempotent, so firing this on an interval — or
168
174
  * racing two instances on the same tick — starts **each window exactly once**. Wire it to a
169
- * `setInterval`, the durable timer poller, or `@nestjs/schedule`. Returns the run ids for the
175
+ * `setInterval`, the durable timer poller, or `@nestjs/schedule`.
176
+ *
177
+ * Pass the SAME `engine` object on every call: which windows already fired, and the jittered fire
178
+ * time of each deferred window, are remembered per engine object. A fresh wrapper per call would
179
+ * redraw a deferred window's fire time on every tick, so it might never fire. Returns the run ids for the
170
180
  * current windows.
171
181
  */
172
182
  export declare function runSchedules(engine: Pick<WorkflowEngine, 'start' | 'getRun'> & Partial<Pick<WorkflowEngine, 'schedulePauseOverride' | 'isDraining'>>, schedules: readonly ScheduledWorkflow[], nowMs: number, opts?: RunSchedulesOptions): Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,38 @@ import { workflowName, } from './workflow-ref.js';
5
5
  // ESM output; in the CJS build, tsup's banner shims `import.meta.url` to the file URL, so the same
6
6
  // call resolves there too. This keeps the load synchronous (no async leak into the scheduler API).
7
7
  const nodeRequire = createRequire(import.meta.url);
8
- const defaultSleep = (ms) => new Promise((r) => setTimeout(r, ms));
8
+ /** Per engine, per schedule key: the jittered fire time of each window this process has seen due. */
9
+ const jitterFireAt = new WeakMap();
10
+ /** Windows of `key` an earlier tick deferred for jitter and that have not fired yet. */
11
+ function deferredWindows(engine, key) {
12
+ return [...(jitterFireAt.get(engine)?.get(key)?.keys() ?? [])];
13
+ }
14
+ /**
15
+ * The candidate windows whose jittered fire time has arrived. A window first seen due gets
16
+ * `now + random() * jitter`, kept until it fires, so the delay is drawn once per window per process
17
+ * (instances still draw independently and the earliest one wins, as before). Only the current
18
+ * candidates are kept for a key, so a window that fired (here or on another instance) is dropped,
19
+ * not leaked.
20
+ */
21
+ function jitterDue(engine, s, candidates, nowMs, random) {
22
+ let byKey = jitterFireAt.get(engine);
23
+ if (byKey === undefined) {
24
+ byKey = new Map();
25
+ jitterFireAt.set(engine, byKey);
26
+ }
27
+ const previous = byKey.get(s.key);
28
+ const current = new Map();
29
+ const due = [];
30
+ for (const runId of candidates) {
31
+ const at = previous?.get(runId) ?? nowMs + Math.floor(random() * s.jitter);
32
+ if (nowMs >= at)
33
+ due.push(runId);
34
+ else
35
+ current.set(runId, at);
36
+ }
37
+ byKey.set(s.key, current);
38
+ return due;
39
+ }
9
40
  /** Deterministic run id for a fixed-interval schedule's current time window. */
10
41
  export function scheduledRunId(key, everyMs, nowMs) {
11
42
  return `sched:${key}:${Math.floor(nowMs / everyMs)}`;
@@ -176,12 +207,15 @@ function scheduleRunIdsAt(s, nowMs) {
176
207
  * Start each schedule's current-window run. The run id is the time bucket (a fixed-interval index,
177
208
  * or the cron fire time) and `engine.start` is idempotent, so firing this on an interval — or
178
209
  * racing two instances on the same tick — starts **each window exactly once**. Wire it to a
179
- * `setInterval`, the durable timer poller, or `@nestjs/schedule`. Returns the run ids for the
210
+ * `setInterval`, the durable timer poller, or `@nestjs/schedule`.
211
+ *
212
+ * Pass the SAME `engine` object on every call: which windows already fired, and the jittered fire
213
+ * time of each deferred window, are remembered per engine object. A fresh wrapper per call would
214
+ * redraw a deferred window's fire time on every tick, so it might never fire. Returns the run ids for the
180
215
  * current windows.
181
216
  */
182
217
  export async function runSchedules(engine, schedules, nowMs, opts) {
183
218
  const random = opts?.random ?? Math.random;
184
- const sleep = opts?.sleep ?? defaultSleep;
185
219
  const settled = settledIdsFor(engine);
186
220
  const ids = [];
187
221
  for (const s of schedules) {
@@ -197,7 +231,11 @@ export async function runSchedules(engine, schedules, nowMs, opts) {
197
231
  // the window's fire time, so it is CONSTANT for the whole window, and asking the
198
232
  // store about it again on the next tick can only produce the answer we already
199
233
  // got. See {@link settledIdsFor}.
200
- const candidates = scheduleRunIdsAt(s, nowMs).filter((id) => !settled.get(s.key)?.has(id));
234
+ // A jittered window deferred by an earlier tick stays a candidate until it fires, even once the
235
+ // schedule has moved on to the next window (a jitter longer than the interval).
236
+ const due = scheduleRunIdsAt(s, nowMs);
237
+ const windows = s.jitter && s.jitter > 0 ? [...new Set([...deferredWindows(engine, s.key), ...due])] : due;
238
+ const candidates = windows.filter((id) => !settled.get(s.key)?.has(id));
201
239
  // Nothing to do this tick — and, crucially, no I/O to prove it. A cron that fires
202
240
  // hourly is not due in 3.599 of every 3.600 seconds; the old code still asked the
203
241
  // database in each of them.
@@ -217,11 +255,18 @@ export async function runSchedules(engine, schedules, nowMs, opts) {
217
255
  continue;
218
256
  }
219
257
  }
220
- // Dispatch-path jitter (not workflow code): spread same-boundary ticks across instances. Applied
221
- // once per schedule, before firing — the run ids below are unaffected, so idempotency holds.
222
- if (s.jitter && s.jitter > 0)
223
- await sleep(Math.floor(random() * s.jitter));
224
- for (const runId of candidates) {
258
+ // Dispatch-path jitter (not workflow code): spread same-boundary ticks across instances. Each
259
+ // window gets its own fire time, `jitter` at most after this process first saw it due, and is
260
+ // skipped until then — the tick does NOT sleep. Sleeping here held the whole tick (every other
261
+ // schedule, runPending, timers, recovery) for the jitter of every due schedule in turn: after a
262
+ // restart, with a few windows due at once, schedules fired many minutes late. The run ids below
263
+ // are unaffected, so idempotency holds.
264
+ if (!(s.jitter && s.jitter > 0))
265
+ jitterFireAt.get(engine)?.delete(s.key); // jitter removed
266
+ const firing = s.jitter && s.jitter > 0 ? jitterDue(engine, s, candidates, nowMs, random) : candidates;
267
+ if (firing.length === 0)
268
+ continue;
269
+ for (const runId of firing) {
225
270
  if (engine.isDraining?.())
226
271
  break; // drain began during jitter/await
227
272
  // Only fire (and report) windows that don't exist yet. `start` is idempotent by run id
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/scheduler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonis-agora/durable",
3
- "version": "0.52.0",
3
+ "version": "0.52.2",
4
4
  "description": "Durable cross-app workflows for AdonisJS — deterministic replay engine, AdonisJS binding, ace commands, dashboard, OpenTelemetry, Telescope, testing harness and Redis admission, all in one package. Part of the Agora ecosystem.",
5
5
  "license": "MIT",
6
6
  "repository": {