Durable workflows.
Every node is code.
Design workflows on a canvas where every node is a real Python file with typed ports. Runs execute durably on Cloudflare Workflows — per-node retries, approvals, and full playback on the canvas.
Five node kinds.
One of them is yours.
The canvas is a projection of the code. Wire branch, loop, delay, and approval nodes around your Python — every port is typed, and the graph validates against the running code via live schema discovery.
Four ways in.
Every one governed.
However a run starts, it is authenticated, permission-checked, and audited — scoped to your organization and environment.
Durable execution.
Governed triggers.
Every workflow is an ordinary codebase: nodes are Python files with typed pydantic ports, the graph is a diffable JSON file, and the canvas is a projection of the code — never a separate source of truth. Runs execute durably through the same governed release lanes as apps.
Code nodes are real Python with an @node decorator and typed pydantic input/output models. Branch, loop, delay, and approval nodes wire around them — the graph itself is a diffable, agent-editable repo file.
Runs execute on Cloudflare Workflows as durable steps: per-node retries with backoff, timeouts, and approval waits up to 30 days. Run state survives restarts and deploys.
Manual, webhook, cron schedule, and app triggers. Every run is authenticated, permission-checked, and audited — scoped to your organization and environment.
Every run records a graph snapshot and per-node status. Watch live runs move across the canvas, or replay finished ones — timings, retries, and approvals included.
Approvals are live.
In the release pipeline.
Workflows ship through the same governed release machinery as apps: approval gates with separation of duties, approvals bound to the exact artifact, and buildable approval-queue apps.
TEST requires 1 approval, PROD requires 2 with separation of duties — the requester cannot self-approve. Enforced by the platform, not by convention.
Every approval is bound to the exact artifact hash. Re-planning invalidates prior approvals — nobody approves a moving target.
Approval-queue apps are a buildable pattern today: real TypeScript on governed SQL, row-level audit on every decision, and governed Slack notifications.
The engine is live.
So are the gates.
Draw the workflow on the canvas, keep every node as real Python, and ship it through governed releases. Durable runs, retries, and playback included.
Open beta · Engine live · Durable runs on Cloudflare
Python nodes · Durable runs · Run playback · Governed triggers