Auto-yielding executions

We've just released Trigger.dev server v2.2.4 and @trigger.dev/* packages @ 2.2.2, which includes a new feature called Auto Yielding Executions that will drastically cut down on serverless function timeouts and provides stronger guarantees around duplicate task executions.

The TLDR is that our @trigger.dev/sdk will now automatically yield Job Run executions that are about to timeout, and resume them in another function execution. Previously when executing a Job Run we'd keep executing until the serverless function timed out, and resume executing only after the timeout was received.

The issue is that we didn't have good control over when the timeout would occur, and it could occur at any time during the execution. This could result in some tasks getting executed multiple times, which is not ideal. It would also mean unwanted timeout logs, which could cause issues with any downstream alert systems. This is what happened when upgrading one of our projects to the new @trigger.dev/[email protected]:

image

If you want to learn more about how this works, read the full Auto Yielding Executions discussion.