Skip to content

SDK Comparison

This document shows which capabilities are supported by each Ironflow SDK. Use this to understand SDK capabilities when deciding which SDK to use for your project.

  • Supported — SDK provides full support for this capability
  • Not supported — SDK does not support this capability
  • N/A Not applicable — Intentionally excluded (e.g., browser SDKs don’t handle secrets for security)
  • Server-only Capability requires server-side execution (Go SDK and Node SDK only)
  • Go SDK (github.com/sahina/ironflow/sdk/go/ironflow) — Native Go client for servers and workers
  • Node SDK (@ironflow/node) — TypeScript/JavaScript for Node.js servers, workers, and handlers
  • Browser SDK (@ironflow/browser) — TypeScript/JavaScript for browser and real-time client interactions
  • Python SDK (ironflow) — Python client API (client methods only, no worker runtime yet)

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Emit events
Trigger workflows
TriggerSync (blocking)

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Define functionsN/A
Register functions
List functions
Invoke function directly

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Get run details
List runs
Cancel run
Retry run
Resume run
Get audit trail (run events)

Scoped Injection (Hot Patching & History Editing)

Section titled “Scoped Injection (Hot Patching & History Editing)”
CapabilityGo SDKNode SDKBrowser SDKPython SDK
Pause run
Get paused state
Inject step output
Patch step (modify outputs)

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Get run state at timestamp
Get run timeline
Get step output at timestamp

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Append event to stream
Read stream events
Get stream info
Create snapshot
Get snapshot
List all streams
Get entity event history

CapabilityGo SDKNode SDKBrowser SDKPython SDK
List projections
Get projection
Get projection status
Create projectionN/A
Rebuild projection
Get rebuild job status
Query SQL projection
Execute raw SQL
Pause projection
Resume projection
Cancel rebuild
Delete projection

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Publish to topic
List topics
Get topic statistics

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Create bucket
List buckets
Get bucket
Delete bucket
Get key
Put key
Delete key
List keys
Watch keys

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Get config (read)
List configs
Set config (full replacement)N/A
Patch config (shallow merge)N/A
Delete configN/A
Watch config (real-time)

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Get secretN/A
Set secretN/A
Update secretN/A
Delete secretN/A
List secretsN/A

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Register schema
List schemas
Get schema (latest)
Get schema version
Delete schema version
Test upcast

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Create webhook source
List webhook sources
Delete webhook source
List webhook deliveries

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Create API key
List API keys
Get API key
Delete API key
Rotate API key

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Create org
List orgs
Get org
Update org
Delete org

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Create role
List roles
Get role
Update role
Delete role
Assign policy to role
Remove policy from role
Create policy
List policies
Get policy
Update policy
Delete policy

CapabilityGo SDKNode SDKBrowser SDKPython SDK
Manage projectsN/A
Manage environmentsN/A
Manage users
List workers
List tenants

FeatureGo SDKNode SDKBrowser SDKPython SDK
Push mode (serverless functions)N/A
Pull mode (long-running workers)N/A
Subscriptions (real-time events)
WebSocket support
ConnectRPC support
HTTP/REST support

  • Building high-performance backend services
  • Implementing complex state machines or sagas
  • Integrating with existing Go applications
  • Need maximum feature parity across all domains
  • Building serverless functions (AWS Lambda, Vercel)
  • Using JavaScript/TypeScript throughout your stack
  • Need full control over step execution and error handling
  • Prefer working in TypeScript for type safety
  • Building real-time frontends with live event subscriptions
  • Implementing interactive dashboards or monitoring tools
  • Need lightweight client-side integrations
  • Want to display projection data and KV store values in UI
  • Building data pipelines or scripts that interact with Ironflow
  • Integrating Ironflow with Python-based AI/ML workflows
  • Need a lightweight client for admin operations or event emission
  • Want to manage Ironflow resources from Jupyter notebooks or CLI tools

Note: The Python SDK provides client API methods only (no worker runtime). For durable step execution, use the Go or Node SDK.


This comparison is maintained alongside the sdk-parity.yaml manifest at the repository root and the SDK generation pipeline (make sdk-health). Features are implemented incrementally, and this table reflects the current state.

The Python SDK is auto-generated from the server’s route manifest using cmd/sdk-gen. See the SDK Generation Guide for details.

To track parity progress or request missing features, refer to the project roadmap and GitHub issues.