Skip to content

Multi-Node Cluster

Ironflow supports horizontal scaling via external NATS JetStream and PostgreSQL — PostgreSQL is required for a cluster; SQLite supports single-node crash-resume only. Each node is stateless — all coordination happens through NATS (event distribution, cron dedup) and PostgreSQL (state persistence, job dispatch, distributed locking via SKIP LOCKED). Pull workers long-poll GET /api/v1/workers/{id}/jobs over HTTP and can take jobs from any node, heartbeating every 30s. The stale-claim sweep runs every 60s and reclaims a claim after IRONFLOW_STALE_CLAIM_THRESHOLD (default 2m) — keep that threshold above the heartbeat interval plus margin.

Ironflow multi-node cluster