A distributed system provides for separate management of dynamic cluster
membership and distributed data. Nodes of the distributed system may
include a state manager and a topology manager. A state manager handles
data access from the cluster. A topology manager handles changes to the
dynamic cluster topology. The topology manager enables operation of the
state manager by handling topology changes, such as new nodes to join the
cluster and node members to exit the cluster. A topology manager may
follow a static topology description when handling cluster topology
changes. Data replication and recovery functions may be implemented, for
example to provide high availability.