Provisioning and HA
All Dashboard components are designed to have some level of redundancy and resiliency.
Overall Provisioning Overview
Data Processing Pipeline
The system is composed of several processes that communicate with each other via a RabbitMQ queue broker.
The basic RabbitMQ pipeline is shown below:
TODO: throw out the 2nd diagram, kept for now as an example. 1st diagram is the newer syntax
RabbitMQ
A RabbitMQ cluster is provisioned across all 3 nodes, with mirroring of all queues.
Galera Cluster
Alarms are stored in a MariaDB Galera cluster. This is the interface between the backend processing provided by this project and the GUI.
The Galera cluster is provisioned something like this:
Inventory Provider and Redis
The dashboard servers are provisioned with a Redis cluster, which is the backend of the Inventory Provider rather than being accessed directly by dashboard components.