Developing and shipping workflows, jobs and particularly long-running tasks is a painful experience.
This is the reason why the Developer eXperience is one of our core value, to empower all developers to build reliable and complex asynchronous applications without spending days working on setup, infrastructure and debugging.
The Defer Builder enables a seamless integrations of Background Functions in your application while the Defer Scheduler and Runner finally make simple the scheduling and execution of long-running tasks and workflows (*especially since our recent release of 7 new API endpoints*).
Today, we are happy to announce the release of the v2 of @defer/client, bringing the Defer experience locally, with support for concurrency, cancellations and more.
@defer/client v1 offered limited local scheduling features with the only support of:
@defer/client v2 supports the following feature locally:
Feature | Local support | Details |
---|---|---|
Immediate execution | ✅ | |
defer() - concurrency option | ✅ | |
defer() - maxDuration option | ❌ | |
defer() - retry option | ❌ | |
defer() - maxConcurrencyAction option | ❌ | |
cancelExecution() | ✅ | |
awaitResult() | ✅ | |
assignOptions() options | ✅ | Long delays might likely result in cancellation upon your local server termination |
rescheduleExecution() | ✅ | |
delay() - Delayed execution | ✅ | Long delays might likely result in cancellation upon your local server termination |
defer.cron() | ❌ | CRONs do not get scheduled locally. You can still test them like regular defer functions though. |
This major release is the base of a new local development experience.
We will continue to add new capabilities to smooth the transition between local development to deployment.
For example with:
Got an idea or feature request? Feel free to write us on GitHub!
Our Scheduler is now directly accessible for advanced use cases such as building a configurable notifications system, create batches of executions or user configurable worflows.
Explore our latest features, including TypeScript 5.x compatibility, PNPM integration, Yarn Plug'n'Play compatibility and Git submodule.