HA configuration
An HA configuration is a redundant operating setup that keeps message processing going even when a failure occurs.
HA mode comparison
NONE
Single node
Runs on a single server. All processes run without any HA handling.
ACTIVE-STANDBY
Active-standby redundancy
The primary runs all processes while the standby checks periodically and promotes itself automatically on failure.
ACTIVE-ACTIVE
Active-active redundancy
Both nodes process at the same time and separate records by agent_id. You need two unified API keys.
Configuration methods
- Active-Standby.
- Multi Active (distributed processing).
- Control based on a shared DB lock or leader election.
Essential considerations
- A lock/key policy that prevents duplicate sends.
- State consistency for in-flight records during failover.
- The recovery order for unfinished items on restart.
Operational checklist
- Run failover tests on a regular basis.
- Include DB and network disconnection scenarios in your verification.
- Monitor the delay/loss/duplication metrics at the moment of the switchover.
HA mode
Set the HA behavior with the ha.mode value in msgConfig.yml.
NONE (single node)
ha:
mode: none
Runs on a single server. Every process runs with no separate HA handling.
ACTIVE-STANDBY
ha:
mode: active-standby
status: primary # Primary: primary / Standby: secondary
primary:
host: 192.168.1.10
port: 5000
retryInterval: 10000
initialDelay: 5000
- Primary: runs every process normally
- Standby: checks the Primary server periodically and is promoted automatically on failure
ACTIVE-ACTIVE
ha:
mode: active-active
id: E1 # 노드 1: E1 / 노드 2: E2
Both nodes process at the same time, and records are separated by the agent_id field.
On MySQL 8.0+ / MariaDB 10.6+ / Oracle 11.2+, FOR UPDATE SKIP LOCKED lets the nodes process without colliding. For an Active-Active configuration, issue two separate unified API keys.