Documentation
Workflow engine
Cordum workflows are DAGs stored in Redis. The engine advances ready steps when dependencies succeed, persists run and step state, and writes an append-only run timeline that powers API and dashboard views.
Dedicated handlers
workerapprovalconditiondelaynotifytransformstorageswitchparallelloopsubworkflow
Generic job-dispatch fallback
llmhttpcontainerscriptinput
Any step may also setfor_eachto fan out over an array. That field is not its own step type.
Execution model
workflow.yaml
name: deploy.pipeline
steps:
lint:
type: worker
topic: job.ci.lint
build:
type: worker
topic: job.ci.build
depends_on: [lint]
approve:
type: approval
depends_on: [build]
deploy:
type: worker
topic: job.ci.deploy
depends_on: [approve]- Independent steps can run in parallel when they have no unresolved dependencies.
- Approval steps dispatch a gate job and hold the run until an operator approves or rejects it.
- Reruns, dry-runs, and timeline reads are exposed through
/api/v1/workflow-runs/*routes.
Expressions and templates
- input.customer.id
- ctx.session.region
- steps.validate.output.ok == true
- length(input.items) > 0
- "ticket-${input.case_id}"
The current evaluator supports literals, path lookups, comparisons, unary boolean negation, and helper functions such aslength()andfirst().
Source of truth:docs/workflow-step-types.md