Flow Studio
Asynchronous (Fire-and-Forget) Mode
The parent continues immediately after starting the child — use cases, output shape, and how to track child execution status from the parent.
Async Mode Timeline
Parent: ──[A]──[B]──[SubWorkflow]──[C]──[D]──▶ (completes)
│
│ Starts child (does NOT wait)
▼
Child: ──[X]──[Y]──[Z]──▶ (runs independently)
What the SubWorkflow Node Returns in Async Mode
In async mode, the SubWorkflow executor starts the child and immediately returns. The node output is:
{
"childExecutionId": "exec-101",
"status": "Started",
"startedAt": "2026-05-25T10:00:00Z"
}
The parent can store this childExecutionId for later use (e.g., pass it to a subsequent WaitForWorkflow node or store it in an entity for status tracking).
Use Cases for Async Mode
| Pattern | Description |
|---|---|
| Notification side-effect | Parent creates an order, fires async "SendConfirmationEmail" workflow |
| Audit / compliance logging | Parent fires async "LogComplianceAudit" workflow without blocking |
| Fan-out parallel processing | Parent fires N async child workflows for each item in a list, then uses WaitForWorkflow to collect results |
| Long-running background task | Parent launches a report generation workflow and returns immediately to the user |
Tracking Child Status
Use the ExecutionStatusNode (from the Processes capability) with the childExecutionId to poll child status:
{
"nodeType": "ExecutionStatus",
"config": {
"executionId": "$output.launchReportWorkflow.childExecutionId"
}
}
// Output: { status: "Completed", completedAt: "...", output: {...} }
Error Handling in Async Mode
Child failures in async mode are silent from the parent's perspective — the parent has already moved on. To handle child failures:
- Design the child workflow to handle its own errors internally (error port edges)
- Use
ExecutionStatusNodeto poll status and detect failure - Use the
WaitForWorkflowNodepattern if you need guaranteed completion checking
outputMap is ignored in async mode. Since the parent doesn't wait for the child, there is no child output to map. The
outputMap config field is silently ignored when mode: "async".