v3.4 · ICONIQ Series A [03:15:44 UTC · LDN]

Operations
you can see.

Trigger.dev runs your background jobs and AI workflows in plain TypeScript — with durable retries, fair queues, cron without timeouts, and traces engineers actually read.

210M+
runs / month
99.99%
delivery SLO
312 ms
p50 enqueue
14.9k
GitHub stars
~/dashboard/runs/run_01HQX9G3 Live · v3.4.2

ai-research-agent

run_01HQX9G3X4F8B7 · v3.4.2 · 6.2 s
RUNNING prod ts
01 · INIT
parse.brief
128 ms
02 · FETCH
search.tavily
894 ms
03 · LLM
openai.extract · retry 2/3
2.41 s
04 · MAP
parallel.summarise × 6
1.82 s
05 · WRITE
notion.append · running
912 ms
06 · NOTIFY
slack.post
queued
Trusted in production by engineering teams at
01 · Write once

Background jobs that don’t drift.

No DSL. No YAML. No separate workflow language to maintain. Your tasks live in your repo, deploy with one CLI command, and stay in lock-step with the code that calls them.

  • 01
    Idempotent by default

    Built-in idempotency keys mean duplicate triggers (webhooks, retries, Stripe events) never produce duplicate side effects.

  • 02
    Versioned deploys

    Runs that started on v3.4.1 finish on v3.4.1. Mid-flight code changes can’t corrupt long-running workflows.

  • 03
    One CLI, one repo

    npx trigger.dev@latest deploy ships your tasks. No separate infra service to maintain alongside your app.

// tasks/ai-research-agent.ts
import { task, retry } from "@trigger.dev/sdk/v3";

export const aiResearchAgent = task({
  id: "ai-research-agent",
  retry: { maxAttempts: 3, factor: 2 },
  queue: { concurrencyLimit: 50 },
  run: async (payload: { brief: string }) => {
    const sources = await retry.onThrow(
      () => tavily.search(payload.brief)
    );
    const notes = await openai.extract(sources);
    const summaries = await batch(notes, summarise);
    await notion.append({ pageId, summaries });
    await slack.post({ channel: "#research" });
  },
});
3
retry policies
50
concurrency
7
tools called
02 · Capabilities

Five primitives. Production from day one.

Everything teams reach for the moment a job has to outlive a serverless request — bundled, versioned, and observable from the same dashboard.

// 01

Durable retries

Configure exponential backoff, custom retry predicates, and per-error policies. A 500 from OpenAI no longer wakes up your on-call rotation at 4 a.m.

RETRY · QUEUESDK v3
// 02

Cron without timeouts

Durable schedules that run for hours, not ten minutes. Cron syntax, lives in your repo, traced in the same UI as the rest of your event-driven tasks.

SCHEDULE · DAG3 cron flavours
// 03

Fair queues

Per-tenant concurrency limits, priority lanes, and fairness across customers — so a single noisy account can’t starve the rest of your fleet.

CONCURRENCY4 strategies
// 04

Realtime traces

Every step, every argument, every retry, every log line streamed live to your dashboard. Diff two runs side-by-side to find the regression in seconds.

OBSERVABILITYOTel native
// 05

AI agent orchestration

Tool-calling chains that survive 30-minute LLM reasoning loops. Stateful, resumable, expressible in plain async/await — no DAG language to learn.

AGENTS · LLMOpenAI · Anthropic
// 06

Alerts you trust

Email, Slack, PagerDuty, webhook. Filter by task, version, deploy, or error class — so the noisy ones never make it through to your phone.

ALERTS · ON-CALL5 sinks
03 · The platform

Built for the operators who live in the dashboard.

Per-customer fairness, baked in.

Set a concurrency limit per tenant, per plan, or per priority lane. Trigger.dev guarantees one customer’s spike won’t starve the others — without you writing a single line of throttling logic.

MonTueWedThuFriSatSun

OTel-native traces.

Every run emits OpenTelemetry spans by default. Pipe them into Datadog, Honeycomb, or Grafana and keep the dashboards your team already trusts.

datadog honeycomb grafana tempo otel

Self-host or managed.

Apache 2.0 core. Run it on your own Kubernetes, or stay on managed cloud — same SDK, same dashboard, same SLO targets.

$ helm install trigger \
  trigger/trigger-dev
04 · The dashboard

Every retry, every span, every log.

Open a run, scrub the timeline, jump to the failing span. The fastest path from “something looks off” to “we found it.”

production · eu-west-2
Filter: task=ai-research-agent · status=running
Showing 12 / 18,442 · refreshing every 1s

run_01HQX9G3X4F8B7

ai-research-agent · v3.4.2 · started 6.2s ago · operator @matt
parse
128 ms
search
894 ms
extract
2.41 s
map × 6
1.82 s
notion
912 ms
slack
queued
05 · The honest table

Trigger.dev vs. the weekend you spend rebuilding it.

A side-by-side with the DIY stack most teams reach for first — cron + Redis + BullMQ + Sentry — before they realise the maintenance debt.

Capability
Trigger.dev
DIY · cron + Redis + BullMQ
Long-running tasks (>15 min)
Nativeup to 24h
Needs custom worker fleet
Per-step retries with backoff
YesSDK primitive
Hand-rolled per task
Realtime trace UI
Built-inOTel native
Sentry + grep
Versioned deploys
Yesruns pin to version
Mid-flight breaks
Per-tenant fair queues
Built-in4 strategies
DIY semaphores
Schedule UI & audit log
Yes
crontab + prayer
Engineer-hours / quarter
~4 h ops
~90 h+ rebuilds
06 · Pricing

Usage-based. No per-seat tax. Free until you scale.

Run the free tier in production. Move up only when concurrency, retention, or volume calls for it. Self-host the open-source core forever, on us.

Free · Hobby
$0/ mo
For solo builders and early prototypes.
  • 10,000 runs / month
  • 5 concurrent runs
  • 24-hour log retention
  • Community Discord support
  • Self-host the OSS core — free forever
Best value
Pro · Production
$49/ mo
For teams shipping real workloads.
  • 100,000 runs / month included
  • 50 concurrent runs · fair queues
  • 14-day trace & log retention
  • Email + Slack alerts · OTel exporters
  • 3 environments · GitHub integration
  • SOC 2 Type II · 99.9% SLO
Scale · Enterprise
Custom
For platform teams running mission-critical jobs.
  • Unlimited runs · committed-use discounts
  • 250+ concurrent · isolated dedicated lanes
  • 90-day retention · audit log export
  • 99.99% SLO · on-call SRE support
  • SSO / SAML · SCIM · HIPAA on request
  • VPC peering & managed self-host option
All plans include unlimited team members · no per-seat charges · pay only for runs.
07 · The receipts

Production engineers who stopped writing queues.

“Trigger.dev is redefining background jobs for modern developers. We moved three internal cron services in a weekend and our on-call pager has been quiet ever since.”
PC
Paul Copplestone
CEO · Supabase
“It just works. We stopped owning a queue and started owning our product.”
AT
Andreas Thomas
Co-founder · Unkey
“We had a homegrown cron solution — great until it wasn’t. Trigger.dev gave us a UI my whole team trusts in one afternoon.”
AD
Alex Danilowicz
CTO · Magic Patterns
“Trigger.dev handles the load without degrading, and observability makes diagnosing issues trivial. We saved a full engineering hire.”
AA
Andreas Asprou
Founder · Flick.social
“Trigger.dev is a great way to automate email campaigns with Resend. The OTel traces feed straight into our Honeycomb dashboards.”
ZR
Zeno Rocha
CEO · Resend
“We’re incredibly thankful for tools like Trigger.dev that let us bring AI-driven solutions to educators and students at scale — without us having to babysit a queue.”
BD
Ben Duggan
Engineering Lead · MagicSchool AI
DELIVERY SLO
99.99%

Audited monthly. Public status page back to 2024.

P50 ENQUEUE
312ms

Median time from trigger() to worker pick-up, measured eu-west-2.

MAX RUN DURATION
24h

Single attempt cap on Scale. Resumable indefinitely via checkpoints.

COMPLIANCE
SOC 2Type II

GDPR-aligned, ISO 27001 controls, HIPAA available.

08 · Honest answers

Twelve questions our engineers actually get.

BullMQ is a great primitive — you still have to build the orchestration on top: deployments, versioning, a UI, alerts, fair queues, retention, multi-region failover. Trigger.dev is that whole layer, plus a TypeScript SDK that lets you express multi-step jobs without inventing a state machine.

Yes. The OSS core is Apache 2.0 and ships with a Helm chart. You can run the entire platform on your Kubernetes, keep the data on your side, and pay nothing — or move to managed cloud later with zero code changes. Several Series-B teams run self-hosted in production today.

Runs pin to the SDK version they started on. A 90-minute job that began on v3.4.1 will finish on v3.4.1, even if you ship three new deploys while it’s in flight. New runs pick up the latest version. No mid-flight corruption, no “why is half my queue using last week’s schema?”

Both. The hard upper bound for a single attempt is 24 hours on Scale, 1 hour on Pro. With Trigger.dev’s checkpointing, a job that lives longer than its attempt window is automatically suspended and resumed across infrastructure boundaries. Customers run multi-day workflows in production.

Pay only for runs you execute. No per-seat charges — every plan includes unlimited team members. The Pro tier covers 100k runs / month; beyond that you pay a per-run rate that drops as volume increases. Scale plans get committed-use discounts and dedicated capacity lanes.

Yes. Every run emits OTel spans by default. We provide first-party exporters for Datadog, Honeycomb, New Relic, Grafana Tempo and any OTLP-compatible collector. You keep the dashboards your team already trusts — we add the span data they were missing.

First-class TypeScript and JavaScript SDK (Node, Bun, Deno). The platform also exposes a runtime API so you can invoke tasks from any language. Build extensions let you bundle Python scripts, Prisma, FFmpeg, Puppeteer and apt packages directly into your task environment.

An agent task is just a regular task that calls an LLM with tools. Trigger.dev gives it the durability the rest of your tasks have — per-tool retries, span-level tracing, idempotent tool calls, structured outputs, and resumable conversations that outlive any single request. No DAG language to learn, no separate orchestration runtime.

SOC 2 Type II audited annually, GDPR-aligned, ISO 27001 controls in place. HIPAA and FedRAMP are available under Scale agreements. EU customers can pin all data to eu-west-2; US customers to us-east-1. VPC peering and bring-your-own-cloud are available on Scale.

Yes. Our solutions team has migration playbooks for each. The TypeScript surface is intentionally close enough that an Inngest function ports in 10-15 minutes. Temporal workflows take longer because of the durable-promise model — we cover both patterns in our migration docs.

Trigger jobs from a webhook handler in your app (one HTTP call) and let the platform absorb the burst. Fair queues guarantee no single tenant can starve your fleet. We’ve seen 50k+ events / minute land cleanly with linear horizontal scaling on Scale plans.

Yes — 10,000 runs / month, 5 concurrent, 24h retention, indefinitely. Plus the entire OSS core is Apache 2.0, free to self-host with no functional limits. Most teams keep their staging environments on the free tier permanently.

Make the run a ritual,
not a mystery.

Ship your first durable task in under five minutes. Free until you scale. No credit card. No sales call.

99.99% delivery SLO · Apache 2.0 core · SOC 2 Type II · v3.4.2 build · LDN / NYC