effect-mq 0.2.0 → 0.3.1

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.
Files changed (56) hide show
  1. package/README.md +182 -18
  2. package/dist/Job.d.ts +51 -1
  3. package/dist/Job.d.ts.map +1 -1
  4. package/dist/Job.js +52 -6
  5. package/dist/Job.js.map +1 -1
  6. package/dist/JobStore.d.ts +86 -6
  7. package/dist/JobStore.d.ts.map +1 -1
  8. package/dist/JobStore.js +27 -1
  9. package/dist/JobStore.js.map +1 -1
  10. package/dist/MemoryJobStore.d.ts +6 -5
  11. package/dist/MemoryJobStore.d.ts.map +1 -1
  12. package/dist/MemoryJobStore.js +160 -32
  13. package/dist/MemoryJobStore.js.map +1 -1
  14. package/dist/Metrics.d.ts +98 -0
  15. package/dist/Metrics.d.ts.map +1 -0
  16. package/dist/Metrics.js +124 -0
  17. package/dist/Metrics.js.map +1 -0
  18. package/dist/Worker.d.ts +6 -0
  19. package/dist/Worker.d.ts.map +1 -1
  20. package/dist/Worker.js +63 -3
  21. package/dist/Worker.js.map +1 -1
  22. package/dist/drizzle-postgres/DrizzleJobStore.d.ts +20 -3
  23. package/dist/drizzle-postgres/DrizzleJobStore.d.ts.map +1 -1
  24. package/dist/drizzle-postgres/DrizzleJobStore.js +352 -84
  25. package/dist/drizzle-postgres/DrizzleJobStore.js.map +1 -1
  26. package/dist/drizzle-postgres/schema.d.ts +255 -351
  27. package/dist/drizzle-postgres/schema.d.ts.map +1 -1
  28. package/dist/drizzle-postgres/schema.js +75 -27
  29. package/dist/drizzle-postgres/schema.js.map +1 -1
  30. package/dist/index.d.ts +7 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +7 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/redis/RedisJobStore.d.ts +4 -2
  35. package/dist/redis/RedisJobStore.d.ts.map +1 -1
  36. package/dist/redis/RedisJobStore.js +67 -28
  37. package/dist/redis/RedisJobStore.js.map +1 -1
  38. package/dist/redis/scripts.d.ts +19 -6
  39. package/dist/redis/scripts.d.ts.map +1 -1
  40. package/dist/redis/scripts.js +208 -23
  41. package/dist/redis/scripts.js.map +1 -1
  42. package/dist/testing/conformance.d.ts.map +1 -1
  43. package/dist/testing/conformance.js +172 -7
  44. package/dist/testing/conformance.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/Job.ts +128 -9
  47. package/src/JobStore.ts +122 -6
  48. package/src/MemoryJobStore.ts +184 -44
  49. package/src/Metrics.ts +135 -0
  50. package/src/Worker.ts +102 -3
  51. package/src/drizzle-postgres/DrizzleJobStore.ts +431 -91
  52. package/src/drizzle-postgres/schema.ts +177 -63
  53. package/src/index.ts +8 -0
  54. package/src/redis/RedisJobStore.ts +90 -35
  55. package/src/redis/scripts.ts +217 -24
  56. package/src/testing/conformance.ts +246 -7
package/README.md CHANGED
@@ -85,6 +85,8 @@ What you get out of the box:
85
85
  can't do to a running processor.
86
86
  - **Unrecoverable errors** — `Job.unrecoverable(error)` or a `retryable`
87
87
  predicate skips the remaining retry budget when retrying can't help.
88
+ - **Deduplication** — pending-dedup, throttle, debounce, and
89
+ replace-while-delayed via a dedup key that never touches your job ids.
88
90
 
89
91
  ## Repeatable jobs
90
92
 
@@ -146,18 +148,57 @@ treats it as a defect (`JobCancelledError`), not a typed failure.
146
148
 
147
149
  ## History retention
148
150
 
149
- Two layers of control:
151
+ Two layers of control, both splittable by terminal state (completed jobs are
152
+ usually noise, failed ones evidence):
150
153
 
151
- - **Per job**: `keep: { count, age }` prunes terminal records per name+state
152
- at ack time.
153
- - **Per store**: a retention ceiling applied to *all* terminal records,
154
- swept periodically in the background:
154
+ - **Per job**: `keep` prunes terminal records per name+state — flat
155
+ `{ count, age }` applies to all states, or split per state:
156
+
157
+ ```ts
158
+ keep: { count: 100 } // all states
159
+ keep: { completed: { age: "1 day" }, failed: { age: "30 days" } } // split
160
+ ```
161
+
162
+ - **Per store**: a retention ceiling swept periodically in the background —
163
+ one duration or a per-state split (an absent state has no ceiling; the
164
+ timer touches its rows only when they carry their own `keep.age`):
155
165
 
156
166
  ```ts
157
167
  MemoryJobStore.layerWith({ historyTtl: "7 days" })
158
- DrizzleJobStore.layer({ jobs, attempts, schedules, queues, historyTtl: "90 days" })
168
+ DrizzleJobStore.layer({ ...tables, historyTtl: { completed: "1 day", failed: "90 days" } })
159
169
  ```
160
170
 
171
+ The sweep honours `min(per-row keep.age, ceiling)`, so a job name that goes
172
+ quiet is still pruned on the timer, not only when its group is next acked.
173
+
174
+ ## Metrics
175
+
176
+ Workers and producers emit Effect `Metric` instruments (exported as the
177
+ `Metrics` module). They are **process-local operational signal, not
178
+ persisted state** — wire up any Effect-compatible exporter (the Otlp modules
179
+ from `effect/unstable/observability`, `@effect/opentelemetry`, Prometheus)
180
+ and retention lives in your metrics backend. The *durable* analogues stay in
181
+ the store: `store.counts()` for live depth, the attempt ledger for per-run
182
+ history — both queryable forever.
183
+
184
+ | Metric | Type | Tags |
185
+ | --- | --- | --- |
186
+ | `effect_mq_jobs_enqueued` | counter | `name`, `queue`, `duplicate` |
187
+ | `effect_mq_job_runs` | counter | `name`, `queue`, `outcome` |
188
+ | `effect_mq_job_run_duration_ms` | histogram | `name`, `queue`, `outcome` |
189
+ | `effect_mq_job_wait_duration_ms` | histogram | `name`, `queue` |
190
+ | `effect_mq_claims` | counter | `queue`, `result` (claimed/empty) |
191
+ | `effect_mq_jobs_in_flight` | gauge | `queue` |
192
+ | `effect_mq_queue_depth` | gauge | `queue`, `state` (opt-in sampler) |
193
+ | `effect_mq_locks_lost` / `effect_mq_cancel_interrupts` | counter | — |
194
+ | `effect_mq_stalled_recovered` | counter | `outcome` |
195
+ | `effect_mq_schedule_ticks` | counter | `name` |
196
+
197
+ `job_wait_duration_ms` is the queue-latency headline: time between a job
198
+ becoming runnable and its claim. Depth sampling costs one `counts()` query
199
+ per queue per tick, so it is opt-in:
200
+ `Worker.layer({ queueMetricsInterval: "15 seconds" })`.
201
+
161
202
  ## Custom job ids
162
203
 
163
204
  Store-assigned ids default to a compact sequence (`j-<n>`). Bring your own
@@ -177,6 +218,41 @@ repeatable-schedule tick ids stay deterministic (exactly-once depends on
177
218
  them). Collisions are retried a bounded number of times, then the enqueue
178
219
  fails; bring real entropy.
179
220
 
221
+ ## Deduplication
222
+
223
+ Dedup is a **separate key**, not id derivation — your ids (explicit,
224
+ `idGenerator`, or store-assigned) are never rewritten. Keys are scoped per
225
+ job name and picked per definition or per enqueue:
226
+
227
+ ```ts
228
+ class SyncBenefits extends Job.make("sync-benefits", {
229
+ payload: { employerId: Schema.String },
230
+ dedupe: ({ employerId }) => employerId // string shorthand = { key }
231
+ }) {}
232
+
233
+ // Per-enqueue, with modes:
234
+ yield* SyncBenefits.enqueue(payload, { dedupe: { key: "emp-1", ttl: "1 minute" } })
235
+ ```
236
+
237
+ Four behaviors, composable from three fields:
238
+
239
+ | Options | Behavior |
240
+ | --- | --- |
241
+ | `{ key }` | dedupe while the keyed job is pending; finishing frees the key |
242
+ | `{ key, ttl }` | throttle: at most one job per window, even after completion |
243
+ | `{ key, ttl, extend: true }` | debounce: every dropped enqueue pushes the window out |
244
+ | `{ key, replace: true }` | while the keyed job is still delayed, the newest payload/metadata/priority/attempts/backoff/keep/timeout/delay replace it (same id; a `ttl` window re-arms) |
245
+
246
+ A deduplicated enqueue returns the keyed job's id (`duplicate: true` at the
247
+ store level). `idempotencyKey` still exists and is different on purpose: it
248
+ makes the job id *itself* deterministic (permanent identity, joinable from
249
+ your domain tables), while `dedupe` is temporal policy with its own lifecycle.
250
+
251
+ Postgres users: dedup adds one table and one jobs column — add
252
+ `export const jobDedupe = mqDedupe()` to your schema and `drizzle-kit
253
+ generate` diffs both (the table and the new `dedupe_key` column) into one
254
+ migration. Memory and Redis need nothing.
255
+
180
256
  ## Postgres through drizzle
181
257
 
182
258
  The Postgres store runs on drizzle v1's Effect driver
@@ -196,7 +272,7 @@ migrations** — no library-run DDL, no parallel migration system:
196
272
 
197
273
  ```ts
198
274
  // db/schema.ts
199
- import { mqJobAttempts, mqJobs, mqQueueControl, mqSchedules } from "effect-mq/drizzle-postgres"
275
+ import { mqDedupe, mqJobAttempts, mqJobs, mqQueueControl, mqSchedules } from "effect-mq/drizzle-postgres"
200
276
 
201
277
  // The `name` column is typed to your job tags (derived, not hand-written):
202
278
  type JobNames = typeof GenerateInvoice._tag | typeof SendEmail._tag
@@ -205,8 +281,53 @@ export const jobs = mqJobs<JobNames>() // default table: effect_mq_jobs
205
281
  export const jobAttempts = mqJobAttempts(jobs) // default: effect_mq_job_attempts
206
282
  export const jobSchedules = mqSchedules() // default: effect_mq_schedules
207
283
  export const jobQueues = mqQueueControl() // default: effect_mq_queue_control
284
+ export const jobDedupe = mqDedupe() // default: effect_mq_dedupe
208
285
  ```
209
286
 
287
+ Need more indexes (the built-ins cover claiming, listing, metadata
288
+ containment, and `name`/`state`/`finishedAt` history)? Every factory takes an
289
+ `extraConfig` callback — the same shape as drizzle's third `pgTable` argument —
290
+ appended after the built-in indexes and owned by your migrations like
291
+ everything else:
292
+
293
+ ```ts
294
+ export const jobs = mqJobs<JobNames>("effect_mq_jobs", {
295
+ extraConfig: (t) => [index("jobs_name_recent_idx").on(t.name, t.enqueuedAt.desc())]
296
+ })
297
+ ```
298
+
299
+ ### Custom columns
300
+
301
+ Need real columns — a tenant id you can FK, RLS-scope, and join — populated
302
+ at job creation instead of patched in from job logic? `extend` the jobs
303
+ table; at enqueue the store fills each extended column from the job's
304
+ `metadata` entry with the same TS key (the definition's
305
+ `metadata: (payload) => ...` is your creation-time hook), NULL when absent:
306
+
307
+ ```ts
308
+ class SyncBenefits extends Job.make("sync-benefits", {
309
+ payload: { companyId: Schema.String, objectId: Schema.String },
310
+ metadata: ({ companyId, objectId }) => ({ companyId, objectId })
311
+ }) {}
312
+
313
+ export const jobs = mqJobs<JobNames>("effect_mq_jobs", {
314
+ extend: {
315
+ companyId: text("company_id").notNull(),
316
+ objectId: text("object_id")
317
+ },
318
+ extraConfig: (t) => [index("jobs_company_idx").on(t.companyId, t.state)]
319
+ })
320
+
321
+ // Coercion/renames when the metadata convention isn't enough:
322
+ DrizzleJobStore.layer({ ...tables, extraValues: ({ metadata }) => ({ companyId: metadata.companyId }) })
323
+ ```
324
+
325
+ `db.select().from(jobs).where(eq(jobs.companyId, tenant))` is fully typed; a
326
+ dedupe `replace` rewrites the extended columns with the latest values; a
327
+ missing metadata key on a `NOT NULL` column fails the enqueue loudly. Memory
328
+ and Redis need nothing — there the metadata projection is already the
329
+ queryable surface (`store.list({ metadata: { companyId } })`).
330
+
210
331
  ```
211
332
  drizzle-kit generate # emits the CREATE TABLE migration next to your others
212
333
  drizzle-kit migrate
@@ -221,13 +342,14 @@ When a future effect-mq version changes the layout, the factory changes and
221
342
  import { DrizzleJobStore } from "effect-mq/drizzle-postgres"
222
343
  import { PgClient } from "@effect/sql-pg"
223
344
  import { Layer, Redacted } from "effect"
224
- import { jobAttempts, jobQueues, jobs, jobSchedules } from "./db/schema.ts"
345
+ import { jobAttempts, jobDedupe, jobQueues, jobs, jobSchedules } from "./db/schema.ts"
225
346
 
226
347
  const JobStoreLive = DrizzleJobStore.layer({
227
348
  jobs,
228
349
  attempts: jobAttempts,
229
350
  schedules: jobSchedules,
230
- queues: jobQueues
351
+ queues: jobQueues,
352
+ dedupe: jobDedupe
231
353
  }).pipe(
232
354
  Layer.provide(PgClient.layer({ url: Redacted.make(process.env.DATABASE_URL!) }))
233
355
  )
@@ -255,9 +377,10 @@ db.select().from(jobAttempts)
255
377
  `MyJob.retry(id)`, `store.remove(id)` — so lock tokens, attempt accounting,
256
378
  and wake-up notifications stay coherent.
257
379
 
258
- Worker tip: `awaitWake` is LISTEN/NOTIFY-driven, and the worker's
259
- `pollInterval` is the fallback `Worker.layer({ pollInterval: "500 millis" })`
260
- is a good Postgres setting.
380
+ Worker tip: `awaitWake` is LISTEN/NOTIFY-driven and **queue-filtered** (the
381
+ NOTIFY payload names the queue, so an enqueue wakes only the takers watching
382
+ that queue many queues don't amplify into many claims). The worker's
383
+ `pollInterval` is just the fallback; the 5s default is fine.
261
384
 
262
385
  ## Redis store
263
386
 
@@ -280,8 +403,10 @@ const JobStoreLive = RedisJobStore.layer({
280
403
  )
281
404
  ```
282
405
 
283
- Wake-ups ride pub/sub (`<prefix>:wake`), so idle workers in other processes
284
- pick new jobs up promptly; the worker's `pollInterval` is the fallback. Notes:
406
+ Wake-ups ride pub/sub (`<prefix>:wake`) with queue-filtered messages, so
407
+ idle workers in other processes pick new jobs up promptly and an enqueue
408
+ wakes only the takers watching its queue; the worker's `pollInterval` is the
409
+ fallback. Notes:
285
410
 
286
411
  - Keys are plain-prefixed (no hash tags) — point it at a single Redis /
287
412
  Valkey node or a cluster-unaware proxy, not Redis Cluster.
@@ -347,6 +472,44 @@ store un-encoded. For `Schema.Redacted` fields, Effect's semantics apply:
347
472
 
348
473
  Both behaviors are pinned by tests.
349
474
 
475
+ ## Reference: knobs at a glance
476
+
477
+ Everything a job definition, an enqueue, and a worker can be tuned with:
478
+
479
+ **`Job.make(name, options)`** — `payload` (schema or struct fields),
480
+ `success`/`error` schemas, `idempotencyKey(payload)`, `dedupe(payload)`,
481
+ `metadata(payload)`, `retryable(error)`, `queue`, `store`, and `defaults`
482
+ (any per-enqueue option below).
483
+
484
+ **Per enqueue** (`enqueue`/`execute` options) — `jobId`, `queue`,
485
+ `metadata`, `dedupe`, `delay`, `priority` (higher first), `attempts`,
486
+ `backoff` (`fixed`/`exponential`), `keep` (`count`/`age`), `timeout`.
487
+
488
+ **Job verbs** — `enqueue`, `execute` (enqueue + await the typed result),
489
+ `poll`, `awaitResult`, `attempts` (the decoded run ledger), `retry`,
490
+ `cancel`, `promote`, `schedule`/`unschedule`, `toLayer` (register the
491
+ handler).
492
+
493
+ **`Worker.layer(options)`** — all durations take `Duration.Input`:
494
+
495
+ | Option | Default | Meaning |
496
+ | --- | --- | --- |
497
+ | `store` | default `JobStore` | which named store this worker claims from |
498
+ | `concurrency` | 1 | taker fibers per queue |
499
+ | `queues` | — | per-queue overrides: `{ email: { concurrency: 5 } }` |
500
+ | `lockDuration` | 30s | how long a claim's lock lasts before it counts as stalled |
501
+ | `lockRenewInterval` | half of `lockDuration` | heartbeat cadence (also delivers cross-process cancels) |
502
+ | `stalledInterval` | 30s | how often to sweep for stalled jobs |
503
+ | `maxStalledCount` | 1 | stalls tolerated before a job is failed outright |
504
+ | `pollInterval` | 5s | idle fallback when no wake-up arrives (wake-ups are queue-filtered and push-based, so the default is fine even on Postgres) |
505
+ | `scheduleSweepInterval` | 15s | how often to tick due repeatable-job schedules |
506
+ | `queueMetricsInterval` | off | sample `store.counts()` per queue into the depth gauge |
507
+ | `id` | random | identifier used in lock tokens |
508
+
509
+ **Store construction** — every driver accepts `idGenerator`, `historyTtl`,
510
+ and `historySweepInterval`; drizzle-postgres additionally takes the table
511
+ instances (+ `validate`), Redis a key `prefix`.
512
+
350
513
  ## Writing a storage driver
351
514
 
352
515
  Implement the `JobStore` service (one atomic seam: `enqueue`, `claim`, `ack`,
@@ -370,10 +533,11 @@ suite in this repo runs the same conformance tests against a real database.
370
533
 
371
534
  ## Roadmap
372
535
 
373
- Next up: richer deduplication (throttle/debounce), trace propagation, a
374
- cross-process event stream, batch enqueue, drizzle schema customization, and
375
- parent-child fan-out. Full prioritized list:
376
- [ROADMAP.md](https://github.com/TeamWarp/effect-mq/blob/main/ROADMAP.md).
536
+ Next up: trace propagation, a cross-process event stream, batch enqueue,
537
+ custom drizzle columns, and parent-child fan-out. Full prioritized list:
538
+ [ROADMAP.md](https://github.com/TeamWarp/effect-mq/blob/main/ROADMAP.md);
539
+ release history:
540
+ [CHANGELOG.md](https://github.com/TeamWarp/effect-mq/blob/main/CHANGELOG.md).
377
541
 
378
542
  ## License
379
543
 
package/dist/Job.d.ts CHANGED
@@ -66,12 +66,30 @@ export interface BackoffInput {
66
66
  *
67
67
  * @since 0.1.0
68
68
  */
69
- export interface KeepInput {
69
+ export interface KeepStateInput {
70
70
  /** Keep at most this many terminal records (per name + state). */
71
71
  readonly count?: number | undefined;
72
72
  /** Remove terminal records older than this. */
73
73
  readonly age?: Duration.Input | undefined;
74
74
  }
75
+ /**
76
+ * Retention input: a flat `{ count, age }` applies to all terminal states;
77
+ * the split form sets independent rules per state (completed jobs are
78
+ * usually noise, failed ones evidence) — an absent state keeps its records
79
+ * until the store's `historyTtl` ceiling:
80
+ *
81
+ * ```ts
82
+ * keep: { count: 100 } // all states
83
+ * keep: { completed: { age: "1 day" }, failed: { age: "30 days" } }
84
+ * ```
85
+ *
86
+ * @since 0.1.0
87
+ */
88
+ export type KeepInput = KeepStateInput | {
89
+ readonly completed?: KeepStateInput | undefined;
90
+ readonly failed?: KeepStateInput | undefined;
91
+ readonly cancelled?: KeepStateInput | undefined;
92
+ };
75
93
  /**
76
94
  * Options shared between job defaults and per-enqueue overrides.
77
95
  *
@@ -93,6 +111,29 @@ export interface JobOptions {
93
111
  */
94
112
  readonly timeout?: Duration.Input | undefined;
95
113
  }
114
+ /**
115
+ * @since 0.1.0
116
+ */
117
+ /**
118
+ * Deduplication input for `Job.make({ dedupe })` and per-enqueue overrides.
119
+ * A bare string is shorthand for `{ key }`. Dedup never changes the job id —
120
+ * it is a separate, name-scoped key:
121
+ *
122
+ * - `{ key }`: dedupe while the keyed job is pending; done jobs free the key.
123
+ * - `{ key, ttl }`: throttle — at most one job per window.
124
+ * - `{ key, ttl, extend: true }`: debounce — dropped enqueues push the
125
+ * window out.
126
+ * - `{ key, replace: true }`: while the keyed job is still delayed, the new
127
+ * enqueue's content replaces it (latest wins).
128
+ *
129
+ * @since 0.3.0
130
+ */
131
+ export type DedupeInput = string | {
132
+ readonly key: string;
133
+ readonly ttl?: Duration.Input | undefined;
134
+ readonly extend?: boolean | undefined;
135
+ readonly replace?: boolean | undefined;
136
+ };
96
137
  /**
97
138
  * @since 0.1.0
98
139
  */
@@ -107,6 +148,8 @@ export interface EnqueueOptions extends JobOptions {
107
148
  readonly queue?: string | undefined;
108
149
  /** Queryable business context, merged over the definition's `metadata`. */
109
150
  readonly metadata?: Readonly<Record<string, string>> | undefined;
151
+ /** Deduplicate by key (see `DedupeInput`); overrides the definition's `dedupe`. */
152
+ readonly dedupe?: DedupeInput | undefined;
110
153
  }
111
154
  interface ResolvedDefaults {
112
155
  readonly delayMs: number;
@@ -185,6 +228,7 @@ export interface Job<Name extends string, Payload extends AnyStructSchema, Succe
185
228
  /** JSON codec for handler exits — what is actually persisted. */
186
229
  readonly exitSchema: Schema.toCodecJson<Schema.Exit<Schema.toCodecJson<Success>, Schema.toCodecJson<Error>, Schema.Defect>>;
187
230
  readonly idempotencyKey: ((payload: Payload["Type"]) => string) | undefined;
231
+ readonly dedupe: ((payload: Payload["Type"]) => DedupeInput) | undefined;
188
232
  readonly metadata: ((payload: Payload["Type"]) => Readonly<Record<string, string>>) | undefined;
189
233
  readonly retryable: ((error: Error["Type"]) => boolean) | undefined;
190
234
  readonly defaults: ResolvedDefaults;
@@ -263,6 +307,12 @@ export declare const make: <const Name extends string, Payload extends Schema.St
263
307
  * while the first job still exists is a no-op (returns the existing id).
264
308
  */
265
309
  readonly idempotencyKey?: ((payload: Payload extends Schema.Struct.Fields ? Schema.Struct.Type<Payload> : Payload["Type"]) => string) | undefined;
310
+ /**
311
+ * Derive a dedup key (and optional throttle/debounce/replace behavior)
312
+ * from the payload. Unlike `idempotencyKey`, this never changes the job
313
+ * id — see `DedupeInput` for the mode semantics.
314
+ */
315
+ readonly dedupe?: ((payload: Payload extends Schema.Struct.Fields ? Schema.Struct.Type<Payload> : Payload["Type"]) => DedupeInput) | undefined;
266
316
  /**
267
317
  * Derive queryable business context from the payload (flat string map, so
268
318
  * every driver can index it). Merged with per-enqueue `metadata`.
package/dist/Job.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Job.d.ts","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Job.d.ts","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
package/dist/Job.js CHANGED
@@ -30,8 +30,9 @@
30
30
  *
31
31
  * @since 0.1.0
32
32
  */
33
- import { Clock, Duration, Effect, Layer, Option, Schedule, Schema } from "effect";
33
+ import { Clock, Duration, Effect, Layer, Metric, Option, Predicate, Schedule, Schema } from "effect";
34
34
  import { JobCancelledError, JobId, JobNotFoundError, JobStore, nextOccurrence, QueueName, ScheduleKey, unrecoverable } from "./JobStore.js";
35
+ import * as Metrics from "./Metrics.js";
35
36
  export {
36
37
  /**
37
38
  * Mark an error value as unrecoverable: the worker skips the remaining
@@ -42,6 +43,23 @@ export {
42
43
  unrecoverable };
43
44
  import { Worker } from "./Worker.js";
44
45
  const TypeId = "~effect-mq/Job";
46
+ const normalizeDedupe = (input) => {
47
+ if (input === undefined)
48
+ return undefined;
49
+ const config = Predicate.isString(input) ? { key: input } : input;
50
+ if (config.key === "") {
51
+ throw new Error("effect-mq: dedupe `key` must be non-empty");
52
+ }
53
+ if (config.extend === true && config.ttl === undefined) {
54
+ throw new Error("effect-mq: dedupe `extend` requires a `ttl`");
55
+ }
56
+ return {
57
+ key: config.key,
58
+ ttlMs: config.ttl !== undefined ? Duration.toMillis(config.ttl) : undefined,
59
+ extend: config.extend === true,
60
+ replace: config.replace === true
61
+ };
62
+ };
45
63
  const defaultPollSchedule = Schedule.min([
46
64
  Schedule.exponential(10, 2),
47
65
  Schedule.spaced("1 second")
@@ -51,9 +69,31 @@ const normalizeBackoff = (input) => input === undefined ? undefined : {
51
69
  delayMs: Duration.toMillis(input.delay),
52
70
  factor: input.factor
53
71
  };
54
- const normalizeKeep = (input) => input === undefined ? undefined : {
72
+ const normalizeKeepState = (input) => ({
55
73
  count: input.count,
56
74
  ageMs: input.age !== undefined ? Duration.toMillis(input.age) : undefined
75
+ });
76
+ const normalizeKeep = (input) => {
77
+ if (input === undefined)
78
+ return undefined;
79
+ const split = "completed" in input || "failed" in input || "cancelled" in input;
80
+ const flat = "count" in input || "age" in input;
81
+ if (split && flat) {
82
+ throw new Error("effect-mq: `keep` must be either flat { count, age } or split per state, not both");
83
+ }
84
+ if (split) {
85
+ // SAFETY: the flat branch was excluded above, so the state keys carry
86
+ // KeepStateInput values.
87
+ const perState = input;
88
+ return {
89
+ completed: perState.completed !== undefined ? normalizeKeepState(perState.completed) : undefined,
90
+ failed: perState.failed !== undefined ? normalizeKeepState(perState.failed) : undefined,
91
+ cancelled: perState.cancelled !== undefined ? normalizeKeepState(perState.cancelled) : undefined
92
+ };
93
+ }
94
+ // SAFETY: the split branch was excluded above, so this is the flat form.
95
+ const policy = normalizeKeepState(input);
96
+ return { completed: policy, failed: policy, cancelled: policy };
57
97
  };
58
98
  const Proto = {
59
99
  [TypeId]: TypeId,
@@ -69,12 +109,12 @@ const Proto = {
69
109
  ...this.metadata?.(payload),
70
110
  ...options?.metadata
71
111
  };
112
+ const dedupe = normalizeDedupe(options?.dedupe ?? this.dedupe?.(payload));
113
+ const queue = options?.queue !== undefined ? QueueName(options.queue) : this.queue;
72
114
  return Schema.encodeEffect(this.payloadJsonSchema)(payload).pipe(Effect.orDie, Effect.flatMap((encoded) => Effect.flatMap(this.store, (store) => store.enqueue({
73
115
  id,
74
116
  name: this._tag,
75
- queue: options?.queue !== undefined
76
- ? QueueName(options.queue)
77
- : this.queue,
117
+ queue,
78
118
  payload: encoded,
79
119
  metadata,
80
120
  priority: options?.priority ?? this.defaults.priority,
@@ -88,10 +128,15 @@ const Proto = {
88
128
  timeoutMs: options?.timeout !== undefined
89
129
  ? Duration.toMillis(options.timeout)
90
130
  : this.defaults.timeoutMs,
131
+ dedupe,
91
132
  delayMs: options?.delay !== undefined
92
133
  ? Duration.toMillis(options.delay)
93
134
  : this.defaults.delayMs
94
- }))), Effect.orDie, Effect.map((result) => result.id));
135
+ }))), Effect.orDie, Effect.tap((result) => Metric.update(Metrics.jobsEnqueued.pipe(Metric.withAttributes({
136
+ name: this._tag,
137
+ queue,
138
+ duplicate: result.duplicate ? "true" : "false"
139
+ })), 1)), Effect.map((result) => result.id));
95
140
  }).pipe(Effect.withSpan(`${this._tag}.enqueue`, {}, { captureStackTrace: false }));
96
141
  },
97
142
  poll(jobId) {
@@ -272,6 +317,7 @@ export const make = (name, options) => {
272
317
  errorSchema,
273
318
  exitSchema,
274
319
  idempotencyKey: options.idempotencyKey,
320
+ dedupe: options.dedupe,
275
321
  metadata: options.metadata,
276
322
  retryable: options.retryable,
277
323
  defaults: {
package/dist/Job.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}