Have something to say?
Incoming webhook trigger
In the dashboard you each task would have a URL for each of your environments. Then you can use this URL in 3rd party products. Any data in the body of the request to that URL would come through to the task as the payload.
Self-hosted workers
You can fully self-host Trigger.dev. This is a really good option in lots of situations if you’re experienced with setting up and managing infrastructure. Another option would be if we offered self-hosted workers. You would host them inside your own cloud account (or on-prem) and they would connect to the Trigger.dev cloud. The pricing model for this is TBD, but it would probably be a combination of a cost per connected worker server and an invocation cost that is higher than the managed worker one.
Rate Limiting / throttling
We currently support setting a concurrencyLimit on a task, or on a queue that you create. This can also be used with a concurrencyKey to have per-user queues: https://trigger.dev/docs/queue-concurrency Sometimes instead of concurrency you want to limit using a rate. For example, 10/minute, 1/second. This is especially useful when using APIs that have rate limits. We should support this with a per-tenant key like we do for concurrency.
Make cold starts faster
When you trigger a prod or staging run in the Trigger.dev cloud it takes 3 seconds on average for the machine to start up and your code to start executing. This same slowness happens when a run resumes, like after using wait.for if the delay is above a threshold when we shut the machine down. They take this long because we're using Kubernetes for our cluster and a new pod takes a while to come up. We're switching to using MicroVMs for the cloud machines. Our target is to get the p95 for starts and resumes to under 500ms.
CPU and Memory graphs on the run page
It’s currently difficult to diagnose performance issues. It would be useful to have graphs on the run page. This would also make it possible to find memory leaks. Currently you have to use Node functions to log out the memory: const memory = process.memoryUsage(); logger.log(“Memory usage”, memory);
Event triggers
Please reintroduce the events feature in V3, similar to what was available in V2. Trigger with an event name and payload A task can subscribe to a named event with a filter (it will only create a run if the filter matches) A single event can trigger many tasks if it matches many
Full Python support
This feature will follow on from our Python extension to allow full Python support in Trigger.dev.
CPU and memory optimised machines
Currently all our machines are evenly balanced between CPU or RAM (or some of them have double the RAM than vCPU). We could add a set of CPU-optimized machines (e.g. 1vCPU + 0.25GB RAM) and memory optimized machines (e.g. 0.25vCPU + 1GB RAM). What do people think? What combos would be useful?
E2E and unit testing utilities
Would be cool to unit test: have a way to unit test specific tasks and mock other other tasks (that are used within the tested task) e2e test: have a way to spin up a instance for e2e tests locally (programmatically for jest/bun testing) and tear it down after tests ran
Asia worker region
Workers in Asia will reduce the latency when accessing your regional resources from your tasks.
Run Trigger.dev in dev mode offline
Trigger.dev currently does not support “offline” dev mode, where you can run tasks without an internet connection. Please let us know if this is a feature you want/need. This would be great to have, and would compliment a Supabase/Next.js stack nicely. I am online 99% of the time but it would be great to develop fully locally in that last 1% where I’m at an airport or in a cafe with bad wifi.
Filter runs by payload value
I recently tried to find a run by filtering on a value of the payload but I couldn’t figure out how. It would be great to be able to do something like “get be runs where task = X and payload.customerId = Y”
Simple support for Observability tools (e.g. Sentry, DataDog, Axiom, etc)
These tools typically require code to be inserted extremely early in the code execution order because they automatically instrument other modules. It might be technically possible to write an ESBuild plugin that works with Trigger.dev (we support those via extensions) but it won’t be trivial. We should add an easy way to use these tools.
Promote a deploy from Staging to Prod
This builds on the promote feature here: https://trigger.dev/changelog/atomic-deploys
Run on complete/failed webhook
Currently it is already possible to setup a Webhook in the runner itself, however that leaves room for error at implementation level. As part of this feature request, I am looking for Webhook manager, where a URL is dispatched whenever a task is completed/failed in a similar way of how stripe works or clerk work (attached screenshot). In case of error, it is easily trackable in dashboard.
Allow Reschedule Run to update payload
It would be awesome so that we could also be able of updating the payload when rescheduling a run (runs with “DELAYED” status). Doing something like: const handle = await runs.reschedule("run_1234", { delay: new Date("2024-06-29T20:45:56.340Z"), payload: { foo: "bar" } }); API endpoint: https://trigger.dev/docs/management/runs/reschedule
Add a logger.success()
As an enhancement to the logger, it would be useful to add a logger.success method that highlights successful events in green within the UI, making it easier to distinguish successful operations from other log messages logger.success("Updated successfully!", payload.data);