Infrastructure sprawl
Temporal for workflows, Kafka for events, a separate event store, Terraform to wire it together. Three to five systems — each needing its own expertise, its own upgrades, its own on-call rotation.
A single binary — events, workflows, projections, and a complete audit trail. Nothing else to run.
Record every change. Replay any moment.
Temporal for workflows, Kafka for events, a separate event store, Terraform to wire it together. Three to five systems — each needing its own expertise, its own upgrades, its own on-call rotation.
Every tool brings its own mental model, its own dashboard, its own way of debugging. Your team juggles abstractions just to trace one request through the system.
Event-driven architectures take months to set up properly. The learning curve is steep, the infrastructure is complex, and the team that built it becomes the only team that can maintain it.
A property of the system — not a feature you enable
Every state change — events, workflow steps, decisions — is captured automatically into one continuous, append-only timeline. No schema to define. No configuration to maintain. It works retroactively on everything already recorded.
Point at any identifier — a transaction, a customer, an order — and see everything connected to it across all primitives. Events, runs, projections, all on one chronological timeline. No log archaeology. No stitching across dashboards.
Statically linked. No CGO. No external dependencies.
Embedded. Event routing, pub/sub, and KV store.
SQLite for dev, Postgres for prod. Auto-detected.
Built-in. Events, runs, projections, time-travel.
HTTP POST to your endpoint. For serverless — Next.js, Lambda, Cloud Functions. Ideal for tasks under 10 seconds.
gRPC streaming from the server. For long-running workers with zero timeout limits. Crash-resilient with step memoization.
A customer disputes a charge. The entity stream already captured every state change — authorization, clearing, settlement, chargeback. Point the lens at the transaction ID and the full timeline appears. Scrub to the exact moment of authorization. See the step-by-step decision trail. No log archaeology, no cross-referencing three dashboards.
Explore in docs →Suspicious transaction hits. A push-mode function fires in milliseconds, running parallel checks — velocity counters, merchant risk scores, behavioral models — all in one step.parallel() call. A projection tracks each model's accuracy in real time. Scoped injection lets the risk team replay the exact transaction with modified thresholds. No staging environment needed.
Explore in docs →One entity stream, fed by every service that touches the customer — onboarding, transactions, support tickets, account changes. Three projections derive different views: 360-degree profile, churn risk score, lifetime value. Eight years of schema changes handled transparently by upcasters. No big-bang migrations.
Explore in docs →A merchant applies. A pull-mode worker orchestrates document verification, compliance checks, risk scoring, and manual review — each as a memoized step. step.subscribe() pauses the workflow for human approval. If the process crashes at step 7 of 12, it resumes at step 7. The compliance team can rewind to any point and see exactly who approved what, when.
Explore in docs →Great workflow engines. But when you need event sourcing — entity streams, projections, time-travel debugging — you're adding a second system. Then a third for the event store. Ironflow starts from the recorded fact. Workflows, projections, and audit trails all derive from the same continuous history.
Kafka for messaging, Lambda for compute, DynamoDB for state, Step Functions for orchestration, CloudWatch for debugging — five consoles to trace one request. Ironflow collapses that into one binary, one dashboard, one timeline.
You've built event-driven systems before. You know it takes two to six months to get the foundations right — event store, replay, projections, idempotency. Ironflow is what you'd build if you had the time. Single binary. Boots in milliseconds. Production-ready.
Record events as permanent, immutable facts. The foundation everything else is built on.
Functions with memoized, durable steps. Crash at step 3 of 5? Resume at step 3, not step 1.
Projections compute real-time views from your event history. No queries, no batch jobs — always up to date.
Scrub back to any moment. See exact state. Diff any two points. Replay with different inputs.