Running Cadenza in a Cluster

If Cadenza is operated in a cluster (e.g. several Cadenza instances behind a load balancer), it is necessary to use the Cadenza messaging system. This ensures that after changes to central elements such as object types and data sources in the Management Center, all other Cadenza instances always show the latest data.

Configuration and Requirements (Overview)

To ensure secure communication between Cadenza instances, the following requirements must be met:

  • At least three Cadenza instances must be configured.

  • An odd number of Cadenza instances must always be operated as the target state.

  • All Cadenza instances must be accessible to each other via the network topology.

  • In addition to the network port for HTTP traffic (e.g. 8443, 443, 80 or 8080), two additional ports must be enabled or set up specifically for communication with the messaging system:

    • Communication Port: 47100 (recommended)

    • Discovery Port: 47500 (recommended)

  • At least one TLS certificate must be provided in a Java Key Store (jks). To simplify deployment, it is also possible to operate all Cadenza instances in the cluster with the same TLS certificate.

  • All public certificates of the other Cadenza instances in the cluster must be available in a Java Trust Store (jks).

  • If necessary, the host names or IP addresses of the other Cadenza instances in the cluster must be known.

During operation:

  • Instances that have received the status UNHEALTHY must be reinserted into the cluster.

Activate Plugin and Adapt Configuration

For each Cadenza instance, the Message Broker plugin (Message_Broker) must be activated and the corresponding messagebroker config must be adapted. See the messagebroker config reference for details.

Status UNHEALTHY - Add Instances Back to the Cluster

If one or more Cadenza instances lose the connection to the other instances active in the cluster, the subset of instances on the Prometheus status endpoint becomes UNHEALTHY. In this case, all Cadenza instances no longer display the latest data.

To add instances with the UNHEALTHY status back to the cluster, they must be restarted. Make sure that this is mapped automatically by health checks of the deployment infrastructure and that the load balancer automatically recognizes when the instances are available again and forwards requests accordingly.

Logging for the Messaging System

To enable debug logging for the messaging system and support troubleshooting, use the CADENZA_LOGLEVEL_CLUSTER logging subsystem. This allows you to configure the log level for cluster-related components without directly modifying logging configuration files.

For details on configuring logging subsystems, see Logging.