Basic Parent Flow
Start one SubFlow for each input and wait for every SubFlow to complete.
SubFlowsStep.WaitFor builds one SubFlow condition per request and combines them with allOf. The parent resumes only after all children finish. This is the smallest useful parent–child fan-out when partial completion and cancellation are not required.
Core implementation
class SubFlowsStep(Step[list[str]]):
def __init__(self, example_subflow: ExampleSubFlow) -> None:
self.example_subflow = example_subflow
def wait_for(self, context: Context, requests: list[str]) -> Wait:
return Wait.all_of(
*(SubFlow.run(self.example_subflow, request) for request in requests)
)
def execute(self, context: Context, requests: list[str]) -> StepDecision:
return graceful_complete()
class BasicParentFlow(Flow[list[str]]):
def __init__(self, example_subflow: ExampleSubFlow) -> None:
self.subflows = SubFlowsStep(example_subflow)
def get_steps(self) -> StepList[list[str]]:
return StepList.start_step(self.subflows)
Example: examples/python/dex_examples/patterns/parallel-subflows/basic_parent_flow.py