Skip to main content
The built-in human node pauses with a message and optional form schema. A custom node can pause by returning workflow.Pause(payload). The walker records a paused status and returns the state with no execution error.

Save the checkpoint

Persist the complete workflow.Input: run ID, context, metadata, statuses, ports, suspended payloads, and resume data. Saving only Pause loses the information needed to skip completed work and restore integration continuations. The Go API leaves persistence to your application. Serialize the state and store it under an authorized run identity before acknowledging a durable pause to the user. Keep private context and continuation data out of public responses.

Supply a decision

For a built-in human node, resume with action and optional form content:
The accepted actions are approve and reject; routing ports are approved and rejected. If a schema is configured, submitted form content is validated. Custom nodes define their own decision payload and read it through Input.Resume(nodeID). On resume, the walker starts from the roots and follows the saved ports of completed nodes without re-executing them. A paused node without its own resolution remains suspended. If multiple nodes paused in one wave, resolving one can expose the next pending pause; continue until there are none.

Recovery limits

Checkpoints protect completed nodes only once state is saved. A side effect performed before a crash or failed checkpoint write can repeat. Use an external idempotency key, transactional state where possible, or a durable executor appropriate to the operation. Keep the graph and its named dependencies stable while checkpoints exist. Editing routing, deleting nodes, or changing a tool’s continuation behavior can make saved state invalid. Version definitions rather than silently replacing the graph used by a paused run. When wrapped as an agent tool, the wrapper stores checkpoints through tool state and converts the pause into an agent interruption. The agent’s history persistence then owns that state.