Back to Enterprise
    High Availability · Data durability

    Your agents keep running when a server doesn't.

    StreamFlow runs your pipelines across a multi-node cluster with quorum-replicated storage. A node can be killed mid-write and not one acknowledged event is lost — failover is measured in seconds, not maintenance windows.

    N-1 node failures survivedRPO = 0 (proven under chaos)Rolling upgrades, no windowOne-click activation
    Live cluster · 3 nodes · replication factor 3
    state:HEALTHY· epoch:1
    node-1Leader
    serving · in-sync
    node-2Follower
    serving · in-sync
    node-3Follower
    serving · in-sync

    A visual of the real behaviour: on leader loss a follower is promoted (epoch advances by one), and every event already acknowledged with quorum stays readable. The engine enforces this in CI — see Proof.

    The single-node trap

    One crashed process shouldn't cost you the data — or the SLA. Most agent platforms shine on a laptop and fall over the moment production asks for uptime, horizontal scale, or an audit trail. Teams end up duct-taping reverse proxies, failover scripts, Postgres replicas and a pub/sub bus — none designed together. Six months in, the duct tape is the product.

    Without HA
    A single point of failure

    The node dies → in-flight events vanish, the SLA breaks, and recovery is a manual scramble through logs. Scale is capped at one box.

    With StreamFlow HA
    A cluster that absorbs the failure

    Quorum-replicated storage + automatic failover. The same pipelines you wrote on day one run partitioned, replicated and persistent — no rewrite.

    Quorum-based durability

    Acknowledged means committed to a majority — or it isn't acknowledged. Writes replicate across the cluster and commit on a majority quorum before the producer sees an ack. Kill a node mid-produce and every acked record is still there. This is the data-plane guarantee, verified by chaos tests that SIGKILL a broker under load.

    Recovery point
    0 events lost

    RPO = 0 for quorum-acked writes under a hard node kill (acks=all).

    Fault tolerance
    N-1 nodes

    A 3-node cluster keeps serving through any single node loss; scale the factor for more.

    Windowed-state recovery
    < 5 s RTO

    Crash mid-window → recover from checkpoint → resume. Duplicates 0, losses 0.

    Honest about the two modes. Non-transactional failover is RPO = 0 (no acked data lost) with at-least-once delivery, de-duplicated by a per-producer sequence stamp. End-to-end exactly-once (transactional) is a separate, opt-in path. We say which is which — never “zero loss” where we mean “no duplicates”.

    Two planes, both fault-tolerant

    The control plane coordinates. The data plane replicates. They fail over independently, so a control-plane blip never touches committed events, and a data-plane node loss never confuses the cluster about who leads.

    Control plane · coordination
    Leadership
    Postgres advisory lock, active / standby — external arbitration, no extra ZooKeeper.
    Split-brain defence
    Every promotion advances a monotonic epoch; the data plane rejects writes carrying a stale epoch.
    Promotion time
    ~10 s (heartbeat × 2), 15 s SLO ceiling.
    Data plane · storage
    Replication
    Raft over gRPC, majority-ack commit, replication factor ≥ 1.
    Partitioning
    Slot-routed by event key — same key, same owner — so scale is horizontal and state stays local.
    Durability
    Append-only WAL on an io_uring / Panama fast path; replay = recovery.

    From laptop to cluster

    One click up the production ladder. Every step reversible. HA and the event mesh are one coherent progression, not two products to evaluate. Each step preserves your agents, pipelines, schedules, revisions and audit history.

    L1
    Single-node
    H2 · embedded log

    Zero setup. Great for development, demos, and a first handful of pipelines.

    L2
    HA cluster
    Postgres · cluster bridge

    Active/standby with advisory-lock failover and one-paste load-balancer config. Production-grade uptime.

    L3
    HA + event mesh
    Postgres · StreamFlow mesh

    Raft-replicated, partitioned storage across nodes. Production at scale, N-1 durable.

    The activation wizard — 5 stages, each retryable, each with rollback

    1. Step 1
      License

      Verifies your plan supports HA — no surprises at runtime.

    2. Step 2
      Peer reachability

      Probes every configured node, so network issues surface before takeover, not during it.

    3. Step 3
      Advisory lock

      Acquires the cluster-wide Postgres lock that prevents split-brain.

    4. Step 4
      Load balancer

      Generates ready-to-paste nginx / HAProxy / Traefik config.

    5. Step 5
      Data migration

      H2 → Postgres in one click, with rollback — no manual SQL, no downtime.

    Restart-safe. The wizard's state lives in the database, not in memory. If the cluster reboots mid-migration, it resumes at the exact stage it was running — you never lose half a day to a restart bug. Every action is audit-logged and RBAC-gated (HA_ACTIVATE · HA_MIGRATE · HA_ROLLBACK).

    Upgrades & disaster recovery

    Upgrade with no window. Recover from a checkpoint, not a backup tape.

    Zero-downtime upgrades
    Roll it node by node

    Drain one node, upgrade, rejoin — the rest keep serving. No maintenance window, no “stop the world”. The epoch guard keeps a rejoining node from acting on stale leadership.

    Online backend migration
    Both backends run in parallel

    The Data-Plane switch cuts over live: both backends run during the window and only the swap of the active read pointer is atomic. Sub-5ms event latency, no loss in tests. Roll back the same way.

    Agent failover
    Checkpoint-based resume

    A standby takes over a failed agent and resumes from its last checkpoint — not from zero. A watchdog restarts crashed agents automatically.

    Producer exactly-once stamping
    Replays are short-circuited

    Each event carries a monotonic per-producer sequence. After a leader kill the producer state rebuilds, and duplicate replays are dropped — de-dup without a second system.

    How we prove it

    Every durability claim above is a test that runs in CI. Not a slide. These are the named integration tests that fail the build if the guarantee regresses — the same discipline behind our published benchmarks.

    Hard node loss under load loses zero acked data
    streamflow-core · FailoverUnderLoadReplicationTestlost = acked − committed = 0
    SIGKILL a broker mid-produce — every acked record still readable
    stress-tests · DurabilityProbe · chaos-broker-killVERDICT PASS · RPO=0
    Crash mid-window, recover from checkpoint, resume clean
    streaming · StreamingCheckpointRecoveryITduplicates 0 · losses 0 · RTO<5s
    Coordinated failover promotes a standby, epoch advances by one
    cluster-bridge · E2ECoordinatedFailoverITepoch +1 · real Postgres
    Primary/standby agent failover resumes from checkpoint
    agent-runtime · AgentInstanceFailoverTestcheckpoint resume
    Producer state rebuilds after leader kill, duplicates dropped
    bridge · IdempotentFailoverDedupTestdedup verified

    Failover promotion is ~10–15 s (heartbeat-driven), not instantaneous — we quote the measured number, not a marketing one. Geo / multi-region is coordinated by vector clocks for cross-region ordering; ask us about the current multi-AZ staging status.

    Enterprise

    Production uptime without a DevOps team.

    One binary: the connector ecosystem, the streaming compute, the agent runtime and the storage backend — one audit log, one credential vault, one HA wizard. No external orchestrator to assemble.

    StreamFlow · Pulse — high availability & event mesh·N-1 durable · RPO = 0 · reversible activation