Start child workflow batch flow.child-workflows
Use this node to declare several independent child runs and wait for the whole declared set to resolve. It fits bounded parallel work such as processing one document per region or running a fixed group of checks. A single node accepts at most 64 members. Split larger collections into deterministic windows so the parent does not create an unmanageable number of children or retain an oversized result in one history segment.
Member contract
Every item in children contains child_id, spec, input, and cancellation_policy. Child IDs must be unique within the parent run and remain stable across replay. The member list is stored in declaration order, and outcomes use that same order even when children finish at different times. Do not reorder the list by completion time, remove an existing identity, or point a reused child ID at a new definition.
Each spec fixes the workflow name, version, runtime entry point, and supported route. Each input supplies member-specific start data. Cancellation policy applies per member. Use request_cancellation when the parent owns cleanup and must wait for it. Use abandon only for work with independent ownership and observability. If a batch mixes policies, document exactly which children can continue after the parent reaches a terminal state.
Aggregation and capacity
When every member resolves, control leaves through completed and outcomes contains each terminal result in stable declaration order. Check success, failure, cancellation, and timeout per member rather than treating the presence of an array as success. Tests should cover an empty list, duplicate IDs, partial start failure, partial terminal failure, the 64-member boundary, parent cancellation, and process recovery. Configure host concurrency, queue backpressure, and tenant quotas for expected batch sizes. For high-volume input, combine deterministic windowing with a continuation boundary and persist the cursor required to resume safely.
Use it to declare multiple independent child workflows at once. It fits a parent that must wait for all members and collect outcomes in stable order.
Runtime behavior
The node ID and each child_id form member identity. The engine validates and records the complete request set before coordinating children, with a maximum of 64 members.
Node contract
- Type
flow.child-workflows- Role
- Durable runtime command
- Runtime binding
start_child_workflows- Durable identity
- Graph node ID plus member key
Configuration properties
| Property | Type and control | Default | Rules |
|---|---|---|---|
childrenChild workflows | listA3SFlowChildrenInput | [{"child_id":"child-1","spec":{"name":"workflow.child","version":"0.1.0","runtime":{"kind":"native_ts","entrypoint":"workflows/child.ts","export_name":"main"}},"input":{},"cancellation_policy":"request_cancellation"}] | Ordered child definitions. A3S Flow accepts at most 64 children per durable batch.Required |
children member properties
| Property | Type and control | Rules |
|---|---|---|
child_id | string | Stable unique child identity in the parentRequired |
spec | WorkflowSpec | Name, version, and runtime entryRequired |
input | JsonValue | Initial input for the child runRequired |
cancellation_policy | request_cancellation | abandon | Child policy when the parent stopsRequired |
Ports
| Direction | Port ID | Kind | Value types |
|---|---|---|---|
| Input | inIn | control | FlowControl |
| Output | completedCompleted | control | FlowControl |
| Output | outcomesOutcomes | data | WorkflowTerminalOutcome[] |
Node JSON example
The CLI creates the same structure from manifest defaults. Canvas position, title, and selection are presentation data.
CLI usage
Inspect the installed manifest first, then create the node and validate the complete workflow. Every command emits JSON.
Skill usage
The package includes the a3s-flow Skill. It queries the CLI catalog before creating, validating, compiling, and digesting a workflow.
Operational notes
- The list cannot be empty and child_id values must be unique.
- Aggregate by declaration order, not completion order.
- Split larger collections into batches with a stable cursor.
