Documents / @faasjs/workflow
@faasjs/workflow
@faasjs/workflow
PostgreSQL-backed persistent workflows for FaasJS.
Workflows are explicit TypeScript definitions executed step by step. Use
runWorkflowStep() from a .job.ts file to process at most one step per job
invocation, or runWorkflow() to run a workflow until it reaches a terminal state.
Install
npm install @faasjs/workflow @faasjs/pg
Usage
import { defineWorkflow, done, next, runWorkflow } from '@faasjs/workflow'
import { z } from '@faasjs/utils'
const workflow = defineWorkflow({
type: 'agent_workflow',
root: 'plan',
schemas: {
plan: z.object({
taskId: z.string(),
}),
run: z.object({
taskId: z.string(),
}),
},
steps: {
async plan(ctx) {
return next('run', { taskId: ctx.params.taskId })
},
async run() {
return done()
},
},
})
await runWorkflow(workflow, { params: { taskId: 'task_001' } })
Functions
Type Aliases
- DefineWorkflowOptions
- DefineWorkflowOptionsInput
- DoneWorkflowInstruction
- FailWorkflowInstruction
- ForkWorkflowInstruction
- NextWorkflowInstruction
- RunWorkflowInput
- RunWorkflowOptions
- RunWorkflowResult
- RunWorkflowStepOptions
- RunWorkflowStepResult
- StartWorkflowOptions
- StartWorkflowResult
- WorkflowDefinition
- WorkflowInstruction
- WorkflowRecord
- WorkflowSchemaSteps
- WorkflowStatus
- WorkflowStepContext
- WorkflowStepHandler
- WorkflowStepParams
- WorkflowStepRecord
- WorkflowSteps
- WorkflowStepSchemas
- WorkflowStepStatus
- WorkflowStepTarget