Flow Studio
Progress Indicator
The progress bar shows how many nodes have finished out of the total node count. It is node-count based, not time-based — a workflow with 10 equal-weight nodes advances 10% per completed node regardless of how long each takes.
Visual Demo
Progress
7 / 12 nodes (58%)
How the Count Updates
The completedNodeCount increments each time a NodeExecutionCompleted event arrives (regardless of whether the node succeeded or was skipped). The totalNodeCount is set when the WorkflowExecutionStarted event arrives — it reflects the number of nodes the Process Engine expects to execute based on the workflow definition.
// Store update on NodeExecutionCompleted
incrementCompletedCount: () =>
set(state => ({ completedNodeCount: state.completedNodeCount + 1 }))
// Store update on WorkflowExecutionStarted
set({ totalNodeCount: event.totalNodes })
Percentage Calculation
const percentage = totalNodeCount > 0
? Math.round((completedNodeCount / totalNodeCount) * 100)
: 0;
// The bar reaches 100% when all nodes complete, even if the execution fails
// (the last event is still NodeExecutionFailed which increments the count)
Edge Cases
| Situation | Behaviour |
|---|---|
| Workflow cancelled mid-run | Progress freezes at the last completed node count |
| Conditional path skips many nodes | Skipped nodes still emit NodeExecutionCompleted (status=skipped) so the bar advances correctly |
| Dynamic branches (unknown node count) | totalNodeCount may update via WorkflowExecutionProgress events as new branches are discovered |
| Single-node test run | Bar jumps directly from 0% to 100% in one event |