- Diagrams
- Architecture
- Multi-Node Cluster
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.