Cloudflare Workflow
Configure Cloudflare Workflows and inspect runs from your app.
Cloudflare Workflow fits apps that already run on Cloudflare Workers and want Cloudflare to own durable workflow execution. ViteHub keeps the workflow files in server/workflows/** and forwards start and run lookup calls to Cloudflare Workflows.
Configure Cloudflare
nuxt.config.ts
export default defineNuxtConfig({
modules: ['@vitehub/workflow/nuxt'],
})
Cloudflare hosting picks the workflow provider automatically. Set workflow.binding only when you want to override the default binding, or pass a binding-like object that already exposes create() and get().
Start a workflow
server/api/workflow/publish.post.ts
import { runWorkflow } from '@vitehub/workflow'
export default defineEventHandler(async () => {
return await runWorkflow('publish-draft', {
title: 'Ship weekly digest',
})
})
If you pass a payload and do not already provide params or payload in the workflow start options, ViteHub writes that payload to params for Cloudflare.
What changes on Cloudflare
| Concern | Behavior |
|---|---|
| Binding lookup | getWorkflowRun(id) resolves the configured binding and calls binding.get(id). |
| Shared run methods | Every run supports id, status(), and stop(). |
| Cloudflare-only methods | Cloudflare runs also expose pause(), resume(), restart(), and sendEvent(event) under run.cloudflare. |
Choose Cloudflare when your app already depends on Workers and you want binding-based workflow orchestration in the same environment.