Concepts overview¶
IronFlow splits work into a Rust orchestration kernel (rust-engine) and Prefect-shaped Python authoring (prefect_compat). The kernel owns durable flow/task state and valid transitions; Python runs your @flow / @task code and calls into the control plane.
Use these pages to learn the IronFlow model end-to-end:
- Flows —
@flow, flow runs, subflows (inline + deployment-backed), and transition hooks. - Tasks —
@task,submit,map, futures, custom names, repeated invocations,persist_result/ resume. - Runners — task runners for concurrent
submit/map. Practical choice guide: How to choose a task runner. - DAG and forecast — static planner, run DAG UI, subflow node kinds, wide/long graphs.
- States and transitions —
RunStatevalues and allowed edges (enforced in Rust). - Prefect → IronFlow — table mapping Prefect mental models to this project.
- Architecture — how Python calls the engine and where persistence hooks live.
Hands-on nesting: How to compose flows with subflows. Resume / persist: How to resume tasks and persist results. Cancel / pause: How to cancel, pause, and resume. For supported features and limits, see Compatibility matrix. For Prefect’s own tutorials, see the upstream Prefect 3 concepts (IronFlow implements a subset; compatibility is not universal).