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

Readiness

Ironflow is pre-1.0. The version number is 0.x. You can build on Ironflow, but APIs, wire formats and behavior can change in any release, and a change can break your code.

The compatibility policy describes the promise planned for 1.x. It takes effect with 1.0.0 and does not apply to current 0.x releases.

  1. Pin a version. Do not follow latest.
  2. Before you upgrade, read the release notes for each version between your version and the new one.

These docs follow the main branch. A page can describe a feature that is not in a release yet.

Replace <version> with the version you use, for example from ironflow version.

ChannelHow to pin
Homebrewbrew pin ironflow stops brew upgrade from changing it.
Scoopscoop hold ironflow
DockerUse a version tag, not latest: ghcr.io/sahina/ironflow-releases:<version>
npmnpm install --save-exact @ironflow/node@<version>. Give every @ironflow/* package the same version.
Gogo get github.com/sahina/ironflow-go/ironflow@v<version>
Pythonpip install ironflow-py==<version>

Each capability has one of three levels. “Ready” means ready within a pre-1.0 product: the notice above still applies.

LevelMeaning
ReadyTested and documented. The contract is settled. No breaking change is planned.
EvolvingWorks and is tested. The API or behavior can still change.
ExperimentalCan change or be removed.

This table rates server and SDK capabilities only. It does not rate Ironflow Desktop features.

A nightly job also runs the live SDK test suites that use the database on PostgreSQL. A Ready label does not depend on that run.

CapabilityAreaReadiness
Emit/trigger eventEvents & TriggeringReady
Synchronous triggerEvents & TriggeringReady
Register functionFunctions & RegistrationReady
Direct invoke by IDFunctions & RegistrationReady
Cancel runRuns & Lifecycle ControlReady
Resume runRuns & Lifecycle ControlReady
step.run memoizationDurable Step PrimitivesReady
waitForEvent yieldDurable Step PrimitivesReady
Push mode serve()Execution ModesReady
Pull worker protocol (register/heartbeat/poll/ack/update)Execution ModesReady
Append entity eventEntity Streams & SnapshotsReady
Read stream eventsEntity Streams & SnapshotsReady
Managed (pure reducer) projection handlerProjectionsReady
External (side-effect) projection handlerProjectionsReady
Publish to topicPub/SubReady
Subscribe replay+livePub/SubReady
KV key CRUD + listKV StorageReady
Watch KV bucketKV StorageReady
Get/list configConfigurationReady
Watch configConfigurationReady
Secrets CRUD (values write-only)SecretsReady
Register schema versionEvent SchemasReady
Webhook source managementWebhooksReady
Inbound provider webhookWebhooksReady
Agent authoring runtime (agent/defineTool/exposeMcp/llm/memory/spawn/approve)Agents & ToolsReady
Invoke agent toolAgents & ToolsReady
LangGraph checkpointer (IronflowSaver)AdaptersReady
Run mutation timelineTime-Travel DebuggingReady
Run state at timestampTime-Travel DebuggingReady
Live patching of step outputScoped Injection & History EditingReady
Offline write queue (IndexedDB + multitab lock)Browser-Only CapabilitiesReady
File storage: buckets, files, signed URLsFilesReady
Rego policy set (get, put, validate, dry-run, versions, rollback)Roles & PoliciesReady
  • SQLite supports one node only, with crash-resume on that node.
  • More than one node needs PostgreSQL, an external NATS server and an s3:// blob URL.
  • Ironflow Desktop: macOS on Apple Silicon is supported. Windows x64 and Linux x64 and arm64 are experimental. Intel Macs are not supported.
  • Ironflow Cloud is planned and does not run today. A waitlist is open.

The engine, the CLI and the SDKs use one version number. Ironflow Desktop has its own version number and its own release notes. Each Desktop release contains an engine release. Desktop is pre-1.0 too.

The SDK Parity Matrix lists every capability, with its test and documentation status for each SDK.