Architecture Note (MVP)¶
IronFlow is intentionally Rust-first: the rust-engine crate is the authoritative orchestration kernel — deterministic state transitions, validation, and append-only history. Python (prefect_compat) is the authoring and integration layer: Prefect-like decorators, process orchestration glue, HTTP when enabled, and calls into the engine over FFI when the native library is loaded. The frontend (if used) observes state through the same persistence and APIs; it is not a second control plane.
Runtime path¶
- Python
@flow/@taskcalls enter the compatibility shim. - The shim creates runs and proposes state transitions to the control plane; the Rust engine applies and records them (deterministic validation, append-only event history).
- Read models and query paths are served from the projected store; heavy or correctness-critical query logic is implemented in Rust when the native bridge is active, with Python fallbacks where provided.
- UI/API consumers read timelines and run state from that stack (SQLite / projections as implemented).
Static planning path¶
- Source for selected Prefect-style patterns is parsed into Graph IR.
- Unsupported dynamic constructs trigger diagnostics and dynamic fallback flags.
- Forecast model emits task count, edge count, critical path, and parallelism estimate.
Compatibility scope (MVP)¶
task.submitchainstask.mapfan-out (subset)- retries/timeouts/cancellation semantics at control-plane level
- concurrency-limit intent