01
Define
Declare dependencies, retry policy, and outputs in readable Lua.
One language. One runtime. One visible path.
01
Declare dependencies, retry policy, and outputs in readable Lua.
02
Execute the same flow from a shell, an API request, or a named webhook.
03
Follow run and task lifecycle events without surrendering your infrastructure.
local flow = Flow.new("nightly_report")
flow:step("users", nodes.http_get({ url = users_url }))
flow:step("orders", nodes.http_get({ url = orders_url }))
flow:step("report", function(ctx)
return build_report(ctx.users_data, ctx.orders_data)
end):depends_on("users", "orders")The runtime does the hard part
Independent work runs in parallel. Dependencies wait. Retry and timeout policy stays with the flow—not scattered through every task.
Built-in capability
Start where you are
Run an example
ironflow run examples/00-showcase/nightly_report.lua