System architecture
Input data starts a controlled decision
External data becomes runtime context; it does not directly choose a node or mutate workflow state.Use a stable event envelope
An input adapter should normalize every source into a versioned envelope before it reaches ControlManager. Keep routing context separate from domain payload data.
Input eventjson
{
"event_id": "evt_01J...",
"event_type": "refund.requested",
"schema_version": "1.0",
"occurred_at": "2026-07-27T08:30:00Z",
"source": "commerce-api",
"workflow_id": "refund_8472",
"payload": {
"order_id": "ord_123",
"amount": 49.90,
"reason": "damaged item"
}
}Map input into runtime context
Intent
A concise description of the requested outcome.
Current state
Loaded from durable workflow storage, never trusted from an unverified sender.
History
Relevant prior messages and execution records.
State data
Validated business data accumulated by the workflow.
Metadata
Event ID, tenant, source, trace ID, and schema version.
Payload
Domain-specific fields made available to selected nodes.