Reliable background jobs without the headache of managing servers
Trigger.dev has no timeouts, gives you control over concurrency, includes built-in monitoring, and scales to handle an elastic workload. You get all this and more without managing servers yourself.
Observability & monitoring
Concurrency & queues
Durable cron schedules
No infrastructure to manage
Advanced filtering
AI features
Automatic retries
Bulk replaying
Tag your tasks
Real-time alerts
Write normal code
Batch triggers
Long-running tasks
Checkpointing
Concurrency & queues
Set concurrency rules to manage how multiple tasks execute. Run tasks sequentially or in parallel, and create custom queues for different users or tiers using concurrency keys.
Learn more
Durable cron schedules
Create and attach recurring schedules of up to a year, which never hit a function timeout. These can be either created or attached in your codebase, or added in our dashboard.
Learn more
Observability & monitoring
Our live run page, powered by OpenTelemetry, provides a real-time trace view of each run as it executes. This is great for viewing detailed logs of your task and debuging errors if they occur.
Learn more
Explore the full set of powerful features
No infrastructure to manage
Your tasks are deployed and automatically scaled on Trigger.dev's long-running servers, which completely eliminates timeouts. This makes development easy without the worry of managing infrastructure.
Long-running tasks
Trigger.dev makes it easy to run background jobs that take a long time to complete. So you can handle resource-heavy tasks like video processing, audio manipulation, PDF conversion, or large CSV processing all without timeouts.
AI features
Trigger.dev is perfect for AI tasks that often exceed serverless timeouts, like waiting for LLM responses. Our upcoming Realtime Notifications feature will also will let you stream results directly to your frontend.
Checkpointing
Tasks are inherently durable, thanks to our checkpointing feature. It allows the state of your task to be saved and resumed later, ensuring reliability. We also freeze tasks during waits meaning you only pay for task execution time.
Write normal code
With Trigger.dev, you just write your usual async code, and it works seamlessly. No need to split your code into chunks to avoid serverless timeouts, as you deploy your tasks to our long-running servers. Tasks docs
Batch triggering
Use batchTrigger()
to initiate multiple runs of a task with custom payloads and options. For fanning-out scenarios, batchTriggerAndWait()
allows you to trigger multiple task instances and wait for all results before proceeding. Batch triggering docs
Automatic retries
If your task encounters an uncaught error, we automatically attempt to run it again. You can combine and nest tasks, triggering them from one another, with each task maintaining its own retry behavior. Retrying docs
Advanced filtering
Easily sort and find tasks based on status, environment, tags , and creation date. You can filter from the dashboard and programmatically via the SDK using runs.list()
.
Bulk replaying
Create copies of multiple runs simultaneously, using the same payload but with the latest code version in your environment. This is particularly useful for replaying failed runs or testing updates across lots of tasks. Replaying docs
Real-time alerts
Choose your preferred notification method – email, Slack, or webhook – to stay updated on run failures, deployment issues, or successful deployments. We attempt runs multiple times based on your retry settings and alert you if an uncaught error occurs in any run. Alerts docs