15 KiB
@trigger.dev/redis-worker
4.5.3
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.5.3
4.5.2
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.5.2
4.5.1
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.5.1
4.5.0
Patch Changes
-
Pipeline the per-entry
HGETALLfetches inMollifierBuffer.listEntriesForEnv. The previous serial implementation issued one Redis round-trip per runId returned byLRANGE, which dominated stale-sweep wall-time at any meaningful backlog (at the sweep's default maxCount=1000, this is ~1000 RTTs per env per pass). Behaviour is unchanged — entries are still skipped when the entry hash has been torn down by a concurrent drainer ack/fail between the LRANGE and the HGETALL. (#3752) -
Make mollifier buffer and drainer internals configurable.
MollifierBuffernow acceptsackGraceTtlSeconds,maxRetriesPerRequest,reconnectStepMs, andreconnectMaxMsoptions, andMollifierDraineracceptsmaxBackoffMsandbackoffFloorMs. All default to their previous hardcoded values, so existing behaviour is unchanged. (#3822) -
MollifierDraineraccepts adrainBatchSizeoption (default 1) that controls how many entries are popped per env per tick — in-flight handlers remain capped by the globalconcurrency.MollifierBufferalso gainsgetDrainingCount()/listStaleDraining(), backed by a newmollifier:drainingZSET maintained atomically with pop/ack/fail/requeue (observability-only). (#3797) -
Add MollifierBuffer and MollifierDrainer primitives for trigger burst smoothing. (#3614)
MollifierBuffer (
accept,pop,ack,requeue,fail,evaluateTrip) is a per-env FIFO over Redis with atomic Lua transitions for status tracking.evaluateTripis a sliding-window trip evaluator the webapp gate uses to detect per-env trigger bursts.MollifierDrainer pops entries through a polling loop with a user-supplied handler. The loop survives transient Redis errors via capped exponential backoff (up to 5s), and per-env pop failures don't poison the rest of the batch — one env's blip is logged and counted as failed for that tick. Rotation is two-level: orgs at the top, envs within each org. The buffer maintains
mollifier:orgsandmollifier:org-envs:${orgId}atomically with per-env queues, so the drainer walks orgs → envs directly without an in-memory cache. ThemaxOrgsPerTickoption (default 500) caps how many orgs are scheduled per tick; for each picked org, one env is popped (rotating round-robin within the org). An org with N envs gets the same per-tick scheduling slot as an org with 1 env, so tenant-level drainage throughput is determined by org count rather than env count. -
Mollifier
mutateSnapshotnow enforces a tag cap: anappend_tagspatch carryingmaxTagsreturns"limit_exceeded"(writing nothing) when the deduped tag count would exceed the limit, so a buffered run can't accumulate more tags via the tags API than the trigger validator allows at creation. (#3756) -
Add a
redis_worker.queue.oldest_message_ageobservable gauge (unitms, labeledworker_name) reporting the age of the oldest overdue message in each queue. This is a generic queue-stall signal: it stays at 0 while a queue drains healthily and rises only when due work sits undrained (e.g. a blocked dequeue, a dead consumer, or backpressure), even when no items are being processed. Orphaned queue entries are resolved against the items hash so they don't report a phantom stall. Also exposesSimpleQueue.oldestMessageAge(). (#4086) -
Updated dependencies:
@trigger.dev/core@4.5.0
4.5.0-rc.7
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.5.0-rc.7
4.5.0-rc.6
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.5.0-rc.6
4.5.0-rc.5
Patch Changes
- Make mollifier buffer and drainer internals configurable.
MollifierBuffernow acceptsackGraceTtlSeconds,maxRetriesPerRequest,reconnectStepMs, andreconnectMaxMsoptions, andMollifierDraineracceptsmaxBackoffMsandbackoffFloorMs. All default to their previous hardcoded values, so existing behaviour is unchanged. (#3822) MollifierDraineraccepts adrainBatchSizeoption (default 1) that controls how many entries are popped per env per tick — in-flight handlers remain capped by the globalconcurrency.MollifierBufferalso gainsgetDrainingCount()/listStaleDraining(), backed by a newmollifier:drainingZSET maintained atomically with pop/ack/fail/requeue (observability-only). (#3797)- Updated dependencies:
@trigger.dev/core@4.5.0-rc.5
4.5.0-rc.4
Minor Changes
- Mollifier buffer extensions: idempotency dedup, an atomic
mutateSnapshotAPI, metadata CAS, claim primitives, and aMollifierSnapshottype. The buffer's Redis client now reconnects with jittered backoff so a fleet of clients doesn't stampede Redis in lockstep after a blip. (#3752) - Add
onTerminalFailurecallback toMollifierDrainerOptionsso the customer's run lands a SYSTEM_FAILURE PG row even when the drainer exhaustsmaxAttemptson a retryable PG error. Previously, retryable-error exhaustion calledbuffer.fail()directly, which atomically marks FAILED + DELs the entry hash with no PG write — silent data loss when PG was unreachable across the full retry budget. The callback fires beforebuffer.fail()on any terminal path (cause: "non-retryable"or"max-attempts-exhausted"); throwing a retryable error from the callback causes the drainer to requeue rather than fail. (#3754)
Patch Changes
- Pipeline the per-entry
HGETALLfetches inMollifierBuffer.listEntriesForEnv. The previous serial implementation issued one Redis round-trip per runId returned byLRANGE, which dominated stale-sweep wall-time at any meaningful backlog (at the sweep's default maxCount=1000, this is ~1000 RTTs per env per pass). Behaviour is unchanged — entries are still skipped when the entry hash has been torn down by a concurrent drainer ack/fail between the LRANGE and the HGETALL. (#3752) - Mollifier
mutateSnapshotnow enforces a tag cap: anappend_tagspatch carryingmaxTagsreturns"limit_exceeded"(writing nothing) when the deduped tag count would exceed the limit, so a buffered run can't accumulate more tags via the tags API than the trigger validator allows at creation. (#3756) - Updated dependencies:
@trigger.dev/core@4.5.0-rc.4
4.5.0-rc.3
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.5.0-rc.3
4.5.0-rc.2
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.5.0-rc.2
4.5.0-rc.1
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.5.0-rc.1
4.5.0-rc.0
Patch Changes
-
Add MollifierBuffer and MollifierDrainer primitives for trigger burst smoothing. (#3614)
MollifierBuffer (
accept,pop,ack,requeue,fail,evaluateTrip) is a per-env FIFO over Redis with atomic Lua transitions for status tracking.evaluateTripis a sliding-window trip evaluator the webapp gate uses to detect per-env trigger bursts.MollifierDrainer pops entries through a polling loop with a user-supplied handler. The loop survives transient Redis errors via capped exponential backoff (up to 5s), and per-env pop failures don't poison the rest of the batch — one env's blip is logged and counted as failed for that tick. Rotation is two-level: orgs at the top, envs within each org. The buffer maintains
mollifier:orgsandmollifier:org-envs:${orgId}atomically with per-env queues, so the drainer walks orgs → envs directly without an in-memory cache. ThemaxOrgsPerTickoption (default 500) caps how many orgs are scheduled per tick; for each picked org, one env is popped (rotating round-robin within the org). An org with N envs gets the same per-tick scheduling slot as an org with 1 env, so tenant-level drainage throughput is determined by org count rather than env count. -
Updated dependencies:
@trigger.dev/core@4.5.0-rc.0
4.4.6
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.4.6
4.4.5
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.4.5
4.4.4
Patch Changes
- Adapted the CLI API client to propagate the trigger source via http headers. (#3241)
- Updated dependencies:
@trigger.dev/core@4.4.4
4.4.3
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.4.3
4.4.2
Patch Changes
- Fix slow batch queue processing by removing spurious cooloff on concurrency blocks and fixing a race condition where retry attempt counts were not atomically updated during message re-queue. (#3079)
- Updated dependencies:
@trigger.dev/core@4.4.2
4.4.1
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.4.1
4.4.0
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.4.0
4.3.3
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.3.3
4.3.2
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.3.2
4.3.1
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.3.1
4.3.0
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.3.0
4.2.0
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.2.0
4.1.2
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.1.2
4.1.1
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.1.1
4.1.0
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.1.0
4.0.7
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.7
4.0.6
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.6
4.0.5
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.5
4.0.4
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.4
4.0.3
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.3
4.0.2
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.2
4.0.1
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.1
4.0.0
Major Changes
- Trigger.dev v4 release. Please see our upgrade to v4 docs to view the full changelog: https://trigger.dev/docs/upgrade-to-v4 (#1869)
Patch Changes
- Now each worker gets it's own pLimit concurrency limiter, and we will only ever dequeue items where there is concurrency capacity, preventing incorrectly retried jobs due to visibility timeout expiry (#2235)
- Updated dependencies:
@trigger.dev/core@4.0.0
4.0.0-v4-beta.28
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.28
4.0.0-v4-beta.27
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.27
4.0.0-v4-beta.26
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.26
4.0.0-v4-beta.25
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.25
4.0.0-v4-beta.24
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.24
4.0.0-v4-beta.23
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.23
4.0.0-v4-beta.22
Patch Changes
- Now each worker gets it's own pLimit concurrency limiter, and we will only ever dequeue items where there is concurrency capacity, preventing incorrectly retried jobs due to visibility timeout expiry (#2235)
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.22
4.0.0-v4-beta.21
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.21
4.0.0-v4-beta.20
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.20
4.0.0-v4-beta.19
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.19
4.0.0-v4-beta.18
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.18
4.0.0-v4-beta.17
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.17
4.0.0-v4-beta.16
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.16
4.0.0-v4-beta.15
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.15
4.0.0-v4-beta.14
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.14
4.0.0-v4-beta.13
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.13
4.0.0-v4-beta.12
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.12
4.0.0-v4-beta.11
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.11
4.0.0-v4-beta.10
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.10
4.0.0-v4-beta.9
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.9
4.0.0-v4-beta.8
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.8
4.0.0-v4-beta.7
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.7
4.0.0-v4-beta.6
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.6
4.0.0-v4-beta.5
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.5
4.0.0-v4-beta.4
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.4
4.0.0-v4-beta.3
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.3
4.0.0-v4-beta.2
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.2
4.0.0-v4-beta.1
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.1
4.0.0-v4-beta.0
Major Changes
- Trigger.dev v4 release. Please see our upgrade to v4 docs to view the full changelog: https://trigger.dev/docs/upgrade-to-v4 (#1869)
Patch Changes
- Updated dependencies:
@trigger.dev/core@4.0.0-v4-beta.0