Skip to main content

Basic Parent Flow

Start one SubFlow for each input and wait for every SubFlow to complete.

Definition graph

BasicParentFlow

Valid

python · examples/python/dex_examples/patterns/parallel-subflows/basic_parent_flow.py

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