Skip to content

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 transitionsRunState values 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).