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

ConcernBehavior
Binding lookupgetWorkflowRun(id) resolves the configured binding and calls binding.get(id).
Shared run methodsEvery run supports id, status(), and stop().
Cloudflare-only methodsCloudflare 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.