Skip to main content

HA Architecture

Linkiir HA is an active / warm-standby pair coordinating through one shared working directory. This page covers the design at the level you need to evaluate it, size it, and reason about its failure behavior.

The design

Both servers are installed identically and are interchangeable. The only difference between them at any moment is which one currently holds the active role.

Key components

ComponentWhat it doesRuns on
Linkiir UI and APIThe administrative surface: projects, workflows, settings, monitoringBoth servers, always
Integration runtimeExecutes your workflows and node scriptsThe active server only
Log archiverWrites message history and log records to the log databaseThe active server only
Shared working directoryHolds settings, users, roles, and projects, so both servers work from one setShared storage you provide
Log databaseHolds message history and searchable log recordsPostgreSQL or MS SQL you provide
Message broker clusterCarries messages between workflow steps, and holds them during a failoverThree nodes, yours or managed
Front doorSends client traffic to whichever server is activeLoad balancer or virtual IP you provide

The standby keeps its UI and API running, which is why you can always sign in to it to see its status — but it runs no workflows and writes no log records, so nothing is processed twice.

How the role moves

The role is decided, not configured. One server holds it; the other monitors and takes over if it stops being held. You do not nominate a primary, and no decision from you is needed at the moment of failure.

Three consequences worth understanding before you design around it:

  • Nothing extra to install. There is no third server, witness process, or cluster manager in the design, and therefore none to fail or to patch.
  • Shared storage is the dependency that matters. The pair depends on it being available and responsive, so its latency and its own redundancy are first-class requirements rather than details. See System Requirements.
  • The timings are adjustable, and the defaults suit most sites. They give roughly 18 seconds to detect an unplanned failure and about 30 seconds to full recovery. You can see and change them on the High Availability page — see Failover timings.

What happens during a failover

StageElapsed
The active server fails0 s
The standby detects it~15 s
The standby promotes itself, starting the runtime and the archiver~18 s
Your front door catches up and moves client traffic+2–10 s
Workflows resume on the promoted server, processing from the broker~30 s

What is preserved across it:

Outcome
Messages in flightWait in the broker, then processed by the promoted server. None lost
Duplicate processingNone. Archiving resumes from committed offsets, and a redelivered message is not stored twice
Signed-in usersStay signed in. A session issued by one server is accepted by the other
Running workflowsStop with the failed server, restart on the promoted one
The recovered serverRejoins as standby and does not take the role back

Nothing to keep in step by hand

Settings, users, roles, projects, licensing, and the HA settings themselves are shared by the pair. You change them once, on either server, and both use them. There is no second copy to update and none to drift out of step — which is why adding a standby does not add administrative work.

The only things that legitimately differ between the two servers are the host they run on and the address each is reached at.

Where integration traffic goes

This is the most commonly missed part of an HA rollout, so it is worth stating plainly.

Your load balancer covers the UI and API. Inbound integration feeds arrive on node listener ports on the active server, and if those must also follow a failover they need the same treatment — a virtual IP, or a load-balancer rule per listener port. Decide this explicitly during planning. See Planning Your Deployment.

Design boundaries

The design does notBecause
Run both servers at once to share loadExactly one server is active. The standby is idle by design, so HA adds resilience rather than capacity
Scale beyond two serversOnly one can be active, so a third adds cost and no availability
Span two data centres as one pairTwo locations cannot form a majority for the broker cluster. See Disaster Recovery
Replace your backupsBoth servers read one copy of the data. See Backup, Restore, and Disaster Recovery

Next