Trigger.dev
What is HardGraph? HardGraph publishes curated, provenance-backed agent skills grounded in reproducible vendor documentation.
Trigger.dev is a background jobs platform for TypeScript: write a task as
ordinary async code, trigger it from your app, and the platform runs it on
managed infrastructure with retries, concurrency control, scheduling, and
realtime status streamed back to the caller. The distinguishing property is
durability — a run can pause and resume hours or days later (waiting on a
timer, an external event, or a child run) without a process staying open the
whole time.
The decision that shapes everything else
Self-hosted versus Cloud is not a deployment detail — it changes who owns queue infra, worker scaling, and version upgrades. Self-hosting buys data locality and infra control at the cost of operating the queue, workers, and Postgres yourself; Cloud buys elasticity and zero ops at the cost of someone else's infrastructure and pricing. Pick this before writing tasks: concurrency limits, machine presets, and networking assumptions differ between the two.
Tasks versus the AI Agents SDK (chat.agent) is the other easily-confused
pair. chat.agent is not a separate product — it's a task with a managed
lifecycle for multi-turn conversation state, built on the same run/checkpoint
primitives as any other task. Reach for it when a conversation must survive a
redeploy or an idle gap between turns; a plain task with its own persistence
is simpler when it doesn't.
What durability constrains
A durable run is checkpointed and can be rehydrated on a different process than the one that started it. Work done outside a tracked step can silently re-execute after a resume, so side effects (API calls, writes, sends) not wrapped as idempotent steps can double-fire on retry or replay. In-memory state — open connections, timers, unflushed buffers — does not survive a suspension boundary and must be re-established, not assumed to persist. Non-deterministic values computed outside a step (random IDs, current time) are a similar trap when later logic depends on them staying stable.
What to verify rather than recall
Concurrency and queue semantics, machine/compute presets, self-hosting
infrastructure requirements, and SDK APIs change across releases and between
the AI Agents SDK and core tasks API. Check these against the mirrored corpus
under references/vendor/ or the current docs rather than asserting a
version or limit from memory.