@deepnoodle/mobius 0.0.12 → 0.0.15

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/worker.js CHANGED
@@ -1,5 +1,74 @@
1
1
  import { randomUUID } from "node:crypto";
2
- import { AuthRevokedError, LeaseLostError, PayloadTooLargeError, RateLimitedError, } from "./client.js";
2
+ import { hostname as systemHostname } from "node:os";
3
+ import { AuthRevokedError, LeaseLostError, PayloadTooLargeError, RateLimitedError, WorkerInstanceConflictError, } from "./client.js";
4
+ const CLOUD_RUN_METADATA_TIMEOUT_MS = 1000;
5
+ /**
6
+ * Resolve a stable per-process `worker_instance_id` from the runtime
7
+ * environment. Order: explicit → Cloud Run K_REVISION + metadata →
8
+ * HOSTNAME env → FLY_MACHINE_ID → RAILWAY_REPLICA_ID →
9
+ * RENDER_INSTANCE_ID → system hostname (`os.hostname()`, for laptops
10
+ * and bare metal) → generated UUID. The returned source is
11
+ * informational only — workers log it once at startup so operators
12
+ * can confirm the right platform was picked up.
13
+ */
14
+ export async function resolveInstanceID(explicit) {
15
+ if (explicit) {
16
+ const trimmed = explicit.trim();
17
+ if (trimmed)
18
+ return { id: trimmed, source: "configured" };
19
+ }
20
+ const cloudRun = await cloudRunInstanceID();
21
+ if (cloudRun)
22
+ return { id: cloudRun, source: "cloud_run_revision_instance" };
23
+ const hostname = (process.env.HOSTNAME ?? "").trim();
24
+ if (hostname)
25
+ return { id: hostname, source: "hostname" };
26
+ const fly = (process.env.FLY_MACHINE_ID ?? "").trim();
27
+ if (fly)
28
+ return { id: fly, source: "fly_machine_id" };
29
+ const railway = (process.env.RAILWAY_REPLICA_ID ?? "").trim();
30
+ if (railway)
31
+ return { id: railway, source: "railway_replica_id" };
32
+ const render = (process.env.RENDER_INSTANCE_ID ?? "").trim();
33
+ if (render)
34
+ return { id: render, source: "render_instance_id" };
35
+ try {
36
+ const host = systemHostname().trim();
37
+ if (host)
38
+ return { id: host, source: "system_hostname" };
39
+ }
40
+ catch {
41
+ // fall through to UUID
42
+ }
43
+ return { id: randomUUID(), source: "generated_uuid" };
44
+ }
45
+ async function cloudRunInstanceID() {
46
+ // Returns null on any metadata-server failure rather than the bare
47
+ // revision — every replica sharing the same revision string would
48
+ // otherwise collapse onto one row and trip the conflict detector.
49
+ // The next strategy (HOSTNAME, which Cloud Run sets per-instance)
50
+ // takes over.
51
+ const revision = (process.env.K_REVISION ?? "").trim();
52
+ if (!revision)
53
+ return null;
54
+ try {
55
+ const ctrl = new AbortController();
56
+ const timer = setTimeout(() => ctrl.abort(), CLOUD_RUN_METADATA_TIMEOUT_MS);
57
+ try {
58
+ const resp = await fetch("http://metadata.google.internal/computeMetadata/v1/instance/id", { headers: { "Metadata-Flavor": "Google" }, signal: ctrl.signal });
59
+ if (!resp.ok)
60
+ return null;
61
+ const id = (await resp.text()).trim();
62
+ return id ? `${revision}-${id}` : null;
63
+ }
64
+ finally {
65
+ clearTimeout(timer);
66
+ }
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ }
3
72
  const silentLogger = {
4
73
  info: () => { },
5
74
  warn: () => { },
@@ -14,14 +83,22 @@ const defaultLogger = {
14
83
  * Worker claims jobs from Mobius and dispatches each to the corresponding
15
84
  * registered action function. A *job* is a single action invocation on
16
85
  * behalf of a workflow run; the backend owns the workflow engine.
86
+ *
87
+ * With `concurrency > 1` the worker holds up to N jobs in flight
88
+ * simultaneously, all reporting the same `worker_instance_id` and
89
+ * session token; the admin UI shows one row with a saturation bar
90
+ * rather than N independent rows.
17
91
  */
18
92
  export class Worker {
19
93
  constructor(client, config, actions) {
20
94
  this.client = client;
95
+ this.instanceIDResolved = false;
21
96
  this.abortController = new AbortController();
22
97
  this.authRevoked = false;
98
+ const logger = config.logger === null ? silentLogger : (config.logger ?? defaultLogger);
23
99
  this.config = {
24
- workerId: config.workerId && config.workerId !== "" ? config.workerId : randomUUID(),
100
+ workerInstanceId: config.workerInstanceId ?? "",
101
+ concurrency: config.concurrency && config.concurrency > 0 ? config.concurrency : 1,
25
102
  name: config.name ?? "",
26
103
  version: config.version ?? "",
27
104
  queues: config.queues ?? [],
@@ -31,9 +108,9 @@ export class Worker {
31
108
  eventQueueSize: config.eventQueueSize ?? 256,
32
109
  eventBatchSize: config.eventBatchSize ?? 20,
33
110
  };
34
- this.logger =
35
- config.logger === null ? silentLogger : (config.logger ?? defaultLogger);
111
+ this.logger = logger;
36
112
  this.actions = actions ?? new Map();
113
+ this.sessionToken = randomUUID();
37
114
  }
38
115
  /** Register an action function under the given name. */
39
116
  register(name, fn) {
@@ -42,21 +119,58 @@ export class Worker {
42
119
  }
43
120
  /**
44
121
  * Start the claim loop. Returns a promise that resolves when the worker is
45
- * stopped via {@link stop} or the given signal is aborted.
122
+ * stopped via {@link stop} or the given signal is aborted. Throws
123
+ * {@link AuthRevokedError} when the credential is revoked mid-flight
124
+ * and {@link WorkerInstanceConflictError} when another live process
125
+ * has already registered this worker_instance_id.
126
+ *
127
+ * Cancellation has two distinct shapes:
128
+ *
129
+ * - {@link stop} aborts the claim loop only — in-flight jobs continue
130
+ * to run to natural completion and the returned promise resolves
131
+ * once they all settle. This is graceful drain.
132
+ * - The caller's `signal`, when aborted, propagates into both the
133
+ * claim loop and every running action. This is the emergency-stop
134
+ * path (e.g. SIGTERM with a hard deadline).
46
135
  */
47
136
  async run(signal) {
48
137
  this.abortController = new AbortController();
49
- const combined = signal
50
- ? anySignal(signal, this.abortController.signal)
138
+ // The claim loop watches both signals so stop() and the caller's
139
+ // emergency abort both halt new claims; executeJob only watches the
140
+ // caller's signal so stop() doesn't kill jobs that have already
141
+ // been claimed.
142
+ const callerSignal = signal;
143
+ const combined = callerSignal
144
+ ? anySignal(callerSignal, this.abortController.signal)
51
145
  : this.abortController.signal;
52
- this.logger.info(`[mobius] worker ${this.config.workerId} started`);
146
+ if (!this.instanceIDResolved) {
147
+ const { id, source } = await resolveInstanceID(this.config.workerInstanceId || undefined);
148
+ this.config.workerInstanceId = id;
149
+ this.instanceIDResolved = true;
150
+ this.logger.info(`[mobius] worker instance id ${id} (source: ${source})`);
151
+ }
152
+ this.logger.info(`[mobius] worker ${this.config.workerInstanceId} started (concurrency=${this.config.concurrency})`);
153
+ const inflight = new Set();
53
154
  while (!combined.aborted) {
54
155
  if (this.authRevoked)
55
156
  break;
157
+ while (inflight.size >= this.config.concurrency && !combined.aborted) {
158
+ const aborted = abortAsPromise(combined);
159
+ try {
160
+ await Promise.race([...inflight, aborted.promise]);
161
+ }
162
+ finally {
163
+ aborted.cancel();
164
+ }
165
+ }
166
+ if (combined.aborted)
167
+ break;
56
168
  let job;
57
169
  try {
58
170
  const claimReq = {
59
- worker_id: this.config.workerId,
171
+ worker_instance_id: this.config.workerInstanceId,
172
+ worker_session_token: this.sessionToken,
173
+ concurrency_limit: this.config.concurrency,
60
174
  wait_seconds: this.config.pollWaitSeconds,
61
175
  };
62
176
  if (this.config.name)
@@ -76,6 +190,10 @@ export class Worker {
76
190
  this.logger.error("[mobius] claim rejected: credential revoked");
77
191
  throw err;
78
192
  }
193
+ if (err instanceof WorkerInstanceConflictError) {
194
+ this.logger.error(`[mobius] claim rejected: worker_instance_id ${this.config.workerInstanceId} is already in use by another live process`);
195
+ throw err;
196
+ }
79
197
  this.logger.error("[mobius] claim error:", err);
80
198
  await sleep(2000, combined);
81
199
  continue;
@@ -84,9 +202,13 @@ export class Worker {
84
202
  await sleep(0, combined);
85
203
  continue;
86
204
  }
87
- await this.executeJob(job, combined);
205
+ const task = this.executeJob(job, callerSignal).finally(() => {
206
+ inflight.delete(task);
207
+ });
208
+ inflight.add(task);
88
209
  }
89
- this.logger.info(`[mobius] worker ${this.config.workerId} stopped`);
210
+ await Promise.allSettled(inflight);
211
+ this.logger.info(`[mobius] worker ${this.config.workerInstanceId} stopped`);
90
212
  if (this.authRevoked) {
91
213
  throw new AuthRevokedError();
92
214
  }
@@ -98,21 +220,25 @@ export class Worker {
98
220
  // ---------------------------------------------------------------------------
99
221
  async executeJob(job, signal) {
100
222
  const jobId = job.job_id;
101
- const workerId = this.config.workerId;
223
+ const workerInstanceId = this.config.workerInstanceId;
224
+ const sessionToken = this.sessionToken;
102
225
  const attempt = job.attempt;
103
226
  this.logger.info(`[mobius] job ${jobId} claimed (workflow=${job.workflow_name}, step=${job.step_name}, action=${job.action}, attempt=${attempt})`);
104
227
  const fn = this.actions.get(job.action);
105
228
  if (!fn) {
106
229
  const msg = `action ${JSON.stringify(job.action)} not registered on this worker`;
107
230
  this.logger.error(`[mobius] ${msg}`);
108
- await this.failJob(jobId, workerId, attempt, "ActionNotRegistered", msg);
231
+ await this.failJob(jobId, workerInstanceId, sessionToken, attempt, "ActionNotRegistered", msg);
109
232
  return;
110
233
  }
111
234
  const actionController = new AbortController();
112
235
  const onAbort = () => actionController.abort();
113
- signal.addEventListener("abort", onAbort, { once: true });
236
+ // Only the caller's signal (passed to run()) propagates into actions.
237
+ // stop() does not flow through here — that's how graceful drain works.
238
+ signal?.addEventListener("abort", onAbort, { once: true });
114
239
  const eventer = new JobEventer(this.client, job, {
115
- workerId,
240
+ workerInstanceId,
241
+ sessionToken,
116
242
  queueSize: this.config.eventQueueSize,
117
243
  batchSize: this.config.eventBatchSize,
118
244
  logger: this.logger,
@@ -122,7 +248,7 @@ export class Worker {
122
248
  jobId,
123
249
  runId: job.run_id,
124
250
  projectId: this.client.project,
125
- workerId,
251
+ workerInstanceId,
126
252
  attempt,
127
253
  queue: job.queue,
128
254
  workflowName: job.workflow_name,
@@ -135,7 +261,8 @@ export class Worker {
135
261
  const heartbeatTimer = setInterval(async () => {
136
262
  try {
137
263
  const hb = await this.client.heartbeatJob(jobId, {
138
- worker_id: workerId,
264
+ worker_instance_id: workerInstanceId,
265
+ worker_session_token: sessionToken,
139
266
  attempt,
140
267
  });
141
268
  if (hb.directives.should_cancel) {
@@ -162,13 +289,14 @@ export class Worker {
162
289
  try {
163
290
  const result = await fn(job.parameters, actionController.signal, actionContext);
164
291
  clearInterval(heartbeatTimer);
165
- signal.removeEventListener("abort", onAbort);
292
+ signal?.removeEventListener("abort", onAbort);
166
293
  eventer.stop();
167
294
  await eventerPromise;
168
295
  if (hbLost)
169
296
  return;
170
297
  const completeReq = {
171
- worker_id: workerId,
298
+ worker_instance_id: workerInstanceId,
299
+ worker_session_token: sessionToken,
172
300
  attempt,
173
301
  status: "completed",
174
302
  };
@@ -180,7 +308,7 @@ export class Worker {
180
308
  }
181
309
  catch (err) {
182
310
  clearInterval(heartbeatTimer);
183
- signal.removeEventListener("abort", onAbort);
311
+ signal?.removeEventListener("abort", onAbort);
184
312
  eventer.stop();
185
313
  await eventerPromise;
186
314
  if (err instanceof AuthRevokedError) {
@@ -194,7 +322,7 @@ export class Worker {
194
322
  }
195
323
  this.logger.error(`[mobius] job ${jobId} failed:`, err);
196
324
  const errType = actionController.signal.aborted ? "Timeout" : "Error";
197
- await this.failJob(jobId, workerId, attempt, errType, String(err));
325
+ await this.failJob(jobId, workerInstanceId, sessionToken, attempt, errType, String(err));
198
326
  }
199
327
  }
200
328
  heartbeatInterval(job) {
@@ -205,10 +333,11 @@ export class Worker {
205
333
  }
206
334
  return 10000;
207
335
  }
208
- async failJob(jobId, workerId, attempt, errorType, msg) {
336
+ async failJob(jobId, workerInstanceId, sessionToken, attempt, errorType, msg) {
209
337
  try {
210
338
  await this.client.completeJob(jobId, {
211
- worker_id: workerId,
339
+ worker_instance_id: workerInstanceId,
340
+ worker_session_token: sessionToken,
212
341
  attempt,
213
342
  status: "failed",
214
343
  error_type: errorType,
@@ -221,17 +350,24 @@ export class Worker {
221
350
  }
222
351
  }
223
352
  /**
224
- * WorkerPool runs multiple single-job workers in one process.
353
+ * Runs multiple worker instances in one process. Most callers do not
354
+ * need a pool — to run several jobs from one process, set
355
+ * {@link WorkerConfig.concurrency} on a single {@link Worker} and the
356
+ * admin UI will show one row with a saturation bar. Reach for a pool
357
+ * only when each child should surface as its own row on the workers
358
+ * page (independent draining, in-flight isolation).
225
359
  */
226
360
  export class WorkerPool {
227
361
  constructor(client, config) {
228
362
  this.client = client;
229
363
  this.actions = new Map();
230
364
  this.abortController = new AbortController();
365
+ const prefix = config.workerInstanceIdPrefix && config.workerInstanceIdPrefix !== ""
366
+ ? config.workerInstanceIdPrefix
367
+ : `worker-${randomUUID()}`;
231
368
  this.config = {
232
- workerIdPrefix: config.workerIdPrefix && config.workerIdPrefix !== ""
233
- ? config.workerIdPrefix
234
- : `worker-${randomUUID()}`,
369
+ workerInstanceIdPrefix: prefix,
370
+ concurrency: config.concurrency && config.concurrency > 0 ? config.concurrency : 1,
235
371
  name: config.name ?? "",
236
372
  version: config.version ?? "",
237
373
  queues: config.queues ?? [],
@@ -262,7 +398,8 @@ export class WorkerPool {
262
398
  let firstError;
263
399
  const workers = Array.from({ length: this.config.count }, (_, i) => {
264
400
  return new Worker(this.client, {
265
- workerId: `${this.config.workerIdPrefix}-${i + 1}`,
401
+ workerInstanceId: `${this.config.workerInstanceIdPrefix}-${i + 1}`,
402
+ concurrency: this.config.concurrency,
266
403
  name: this.config.name,
267
404
  version: this.config.version,
268
405
  queues: this.config.queues,
@@ -301,14 +438,46 @@ export class WorkerPool {
301
438
  this.abortController.abort();
302
439
  }
303
440
  }
441
+ // sleep resolves after ms or when the signal aborts, whichever comes
442
+ // first. Detaches the abort listener on the natural-resolution path
443
+ // so it doesn't accumulate on a long-lived signal across thousands of
444
+ // poll cycles.
304
445
  function sleep(ms, signal) {
446
+ // AbortSignal does not retroactively dispatch abort to listeners
447
+ // added after the signal already fired, so an already-aborted signal
448
+ // would otherwise wait the full ms before resolving.
449
+ if (signal.aborted)
450
+ return Promise.resolve();
305
451
  return new Promise((resolve) => {
306
- const t = setTimeout(resolve, ms);
307
- signal.addEventListener("abort", () => {
452
+ const onAbort = () => {
308
453
  clearTimeout(t);
309
454
  resolve();
310
- }, { once: true });
455
+ };
456
+ const t = setTimeout(() => {
457
+ signal.removeEventListener("abort", onAbort);
458
+ resolve();
459
+ }, ms);
460
+ signal.addEventListener("abort", onAbort, { once: true });
461
+ });
462
+ }
463
+ // abortAsPromise returns a promise that resolves when the signal
464
+ // aborts, plus a cancel function the caller invokes when the promise
465
+ // is no longer needed (e.g. when something else won a Promise.race).
466
+ // Without the cancel handle, every Promise.race in the concurrency
467
+ // loop would leak a listener on the long-lived worker signal.
468
+ function abortAsPromise(signal) {
469
+ if (signal.aborted)
470
+ return { promise: Promise.resolve(), cancel: () => { } };
471
+ let resolveFn;
472
+ const promise = new Promise((resolve) => {
473
+ resolveFn = resolve;
311
474
  });
475
+ const onAbort = () => resolveFn();
476
+ signal.addEventListener("abort", onAbort, { once: true });
477
+ return {
478
+ promise,
479
+ cancel: () => signal.removeEventListener("abort", onAbort),
480
+ };
312
481
  }
313
482
  function anySignal(...signals) {
314
483
  const controller = new AbortController();
@@ -358,7 +527,8 @@ class JobEventer {
358
527
  }
359
528
  try {
360
529
  await this.client.emitJobEvents(this.job.job_id, {
361
- worker_id: this.options.workerId,
530
+ worker_instance_id: this.options.workerInstanceId,
531
+ worker_session_token: this.options.sessionToken,
362
532
  attempt: this.job.attempt,
363
533
  events: batch,
364
534
  });
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepnoodle/mobius",
3
- "version": "0.0.12",
3
+ "version": "0.0.15",
4
4
  "type": "module",
5
5
  "description": "TypeScript SDK for Mobius workflow orchestration",
6
6
  "license": "Apache-2.0",