emqx_node_rebalance is a part of the node evacuation/node rebalance feature in EMQX.
It implements high-level scenarios for node evacuation and rebalancing.
emqx_node_rebalance application's core concept is a rebalance coordinator.
Rebalance сoordinator is an entity that implements the rebalancing logic and orchestrates the rebalancing process.
In particular, it:
We have two implementations of the rebalance coordinator:
emqx_node_rebalance - a coordinator that implements node rebalancing;emqx_node_rebalance_evacuation - a coordinator that implements node evacuation.emqx_node_rebalance is a high-level application that is loosely coupled with the rest of the system.
It uses Eviction Agent to perform the required operations.
The application provides API (CLI and HTTP) to perform the following operations:
Also, an HTTP endpoint is provided for liveness probes.
The rebalancing concept is described in the corresponding EIP.
Please see our contributing.md.