SDK sync
Keep workflow functions in your own code and sync them to Clevix Flow.
Hosted workflow engine
Clevix Flow runs background jobs and multi-step workflows for your app. Write functions in your own code. We run each step reliably.
Events, schedules and API calls can start a run.
See every workflow run and step.
Built for durable work
Start work in different ways. Save progress. Retry safely. See what happened when a run needs attention.
Keep workflow functions in your own code and sync them to Clevix Flow.
Start runs from events, schedules or direct API calls.
Each step is saved so a run can survive failures and deploys.
Retry one failed step without starting the whole run again.
Sleep for minutes or days without keeping a worker busy.
Pause a run until the event it needs arrives.
Call another function and keep the full run connected.
Control how many runs can execute at the same time.
Combine rapid events before they start unnecessary work.
Group events and process them together.
See every run, step, event and error with metrics and alerts.
Separate production from testing and share access with your team.
TypeScript SDK
Use the SDK in your own code. Sync the function to Clevix Flow. Its steps can run, sleep and continue later.
import { Flow } from "@clevix/flow";
const flow = new Flow({ id: "shop" });
export const sendWelcome = flow.createFunction(
{ id: "send-welcome", retries: 5 },
{ event: "user/signed-up" },
async ({ event, step }) => {
const user = await step.run("load-user", () => db.users.find(event.data.userId));
await step.sleep("wait-a-day", "1d");
await step.run("send-email", () => email.send(user.email, "Welcome!"));
},
);How it works
Keep the logic in your app. Clevix Flow handles the run state around it.
Define a function and its steps in your own code.
Sync the function to your Clevix Flow app.
Use an event, a schedule or an API call.
Follow every run, step and error in the dashboard.