MATRIXX Engine High Availability and Scalability
MATRIXX uses features of Kubernetes and Helm to ease high availability (HA) and scalability of components.
MATRIXX Engine pods are scaled based on settings in Helm values files that specify the topology of the installation. Configuration of the replica count for each component describes the minimum number of pods that must be running for each component. Kubernetes liveness and readiness probes, also configurable, further direct instantiation of replacement pods when needed. Multiple Kubernetes clusters and namespaces provide processing capabilities across multiple pods and allow Kubernetes to remove and restore pods within a cluster. In this way, MATRIXX Engine can recover from fault scenarios seamlessly and in a non-system-impacting manner.
Clustering and scalability are possible because MATRIXX Engine supports complete data and transaction replication of all events processed by any pod in an installation to all other pods within the installation, without needing to block processing of an event for any reason. Resources are not locked. Different pods can be processing different events from the same subscriber with correct results. Locality of reference is not needed. For example, any pod can process an update to an open session with no additional overhead, independent of which pod processed the opening of the session.
The ability to distribute data and ensure it is replicated and consistent in real-time allows an engine to maintain full transaction processing capabilities, even in the event of failure of one or more pods.