Cluster Topology Management

CAS can discover and report the topology of clustered deployment components used throughout the deployment, providing a unified view of participating members regardless of the underlying implementation. The discovery process identifies the members that currently make up the cluster, records their advertised network addresses and roles where applicable, and determines their operational status using the platform’s native health and topology mechanisms. This information is collected to present an accurate representation of the current cluster rather than relying solely on static configuration or connection endpoints.

The discovered topology is exposed through the CAS monitoring infrastructure, allowing administrators to inspect cluster membership, verify that individual members are reachable and healthy, and detect changes such as members joining, leaving, or becoming unavailable. This provides operational visibility into the distributed environment and helps diagnose connectivity, failover, replication, and high-availability issues by presenting the current cluster state from the perspective of the underlying distributed system.

Cluster topology support is available for the following features:

Custom Cluster Topology

If you wish to design your own cluster topology discovery mechanism, you may plug in a custom implementation of the ClusterTopologyManager:

1
2
3
4
@Bean
public ClusterTopologyManager myClusterTopologyManager() {
    return new MyClusterTopologyManager();
}

See this guide to learn more about how to register configurations into the CAS runtime.

Actuator Endpoints

The following endpoints are provided by CAS:

clusterTopology
CAS endpoint2 operationsNot exposed by default
1

Turn the endpoint on and expose it over the web. One entry covers every operation. By default only info, health and status are exposed.

1
2
management.endpoint.clusterTopology.access=UNRESTRICTED
management.endpoints.web.exposure.include=clusterTopology

Endpoints may be mapped to other paths. For example, to serve health at healthcheck:

1
management.endpoints.web.path-mapping.health=healthcheck