Durable workflows are generally available
Run background jobs with retries, timeouts, and step-level logs.
Workflows let you split a long job into steps that survive restarts, deploys, and crashes. Each step is checkpointed, so a failure retries that step instead of the whole run.
What’s included
- Retries with backoff per step, with a maximum attempt count
- Timeouts per step and per run
- Step-level logs in the dashboard and through
cloud logs --workflow - Manual replay from any failed step
Get started
import { workflow, step } from "@cloud/workflows";
export default workflow("send-invoices", async () => {
const accounts = await step("load", () => loadAccounts());
await step("send", { retries: 5, timeout: "2m" }, () => sendAll(accounts));
});Workflows are billed as regular compute. There is no extra charge for checkpoints.