Skip to content
Ironflow is pre-1.0: APIs can change between releases. Pin a version. What is ready →

Multi-Node Cluster

Ironflow supports horizontal scaling via external NATS JetStream and PostgreSQL. A cluster requires PostgreSQL, external NATS and a shared s3:// blob URL (IRONFLOW_BLOB_URL); SQLite supports single-node crash-resume only. Each node is stateless — all coordination happens through NATS (event distribution, cron history, SQL-projection ownership through a pinned consumer) and PostgreSQL (state persistence, atomic cron-slot admission, 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