Execution Overview
Executing a workflow sends the graph to the backend Process Engine, which runs each node in dependency order. Real-time feedback streams back via SignalR, updating node status overlays on the canvas and populating the Observer Panel tabs.
The Execution Pipeline
Switch to Execution Mode
Click the Execution button in the mode selector. The canvas becomes read-only. The Observer Panel opens.
Click Run
POST /api/v1/process-engine/execute is called with the ProcessThread ID and optional trigger data. The backend responds with an ExecutionId.
Connect to SignalR
The client subscribes to execution events on the ExecutionHub using the received ExecutionId. Node status events start arriving.
Canvas Updates in Real Time
As each node executes, designerModeStore.nodeStatuses is updated. The canvas re-renders node border colours and icons to reflect current status.
Execution Completes
A WorkflowExecutionCompleted event arrives. The Observer Panel shows the final status. Execution history is recorded.
Execution Request
// POST /api/v1/process-engine/execute
{
"processThreadId": "thread-abc123",
"triggerData": { // optional initial data
"invoiceId": 1042,
"requestedBy": "user-456"
}
}
// Response:
{
"executionId": "exec-xyz789",
"status": "started",
"startedAt": "2026-05-25T09:00:00Z"
}
What designerModeStore Tracks
// designerModeStore during execution
{
mode: 'execution',
activeExecutionId: 'exec-xyz789',
nodeStatuses: {
'node-trigger1': { status: 'completed', durationMs: 5 },
'node-httpReq1': { status: 'running', startedAt: '...' },
'node-dbInsert1': { status: 'pending' }
}
}