The present invention extends to methods, systems, and computer program
products for establishing and maintaining membership within a federation
infrastructure. A joining node submits a join message to an existing
federation infrastructure. The federation infrastructure routes the join
message to a processing node. The processing node facilitates
identification of predecessor, successor, neighborhood, and routing nodes
(for the joining node) within a ring of nodes. The joining node exchanges
messages with identified nodes to obtain state information for the
identified nodes and other nodes within the ring. Nodes periodically
exchange state information, including state information for other nodes,
such that state information for the ring is efficiently propagated to all
nodes in the ring even when communication between some nodes is lost.
Instance IDs, phase values, and freshness values are used to determine
when state information is stale and/or is to be updated.