Patent ID: 7958262

Claim:
At a receiving node in a federation infrastructure of a ring of nodes, the receiving node including a processor and system memory, the ring of nodes configured for bi-directional routing, the ring of nodes also including an immediate predecessor neighbor node preceding the receiving node on the ring of nodes, and an immediate successor neighbor node succeeding the receiving node on the ring of nodes, a method for identifying a node responsible for processing a message, the method comprising: an act of the receiving node receiving a message including a ring identifier, the ring identifier indicating that the message is directed to a destination on the ring of nodes, the destination being on the ring of nodes somewhere between the receiving node and an immediate neighborhood node, the immediate neighborhood node selected from among: the immediate predecessor neighbor node and the immediate successor neighborhood node; an act of the processor identifying a node, selected from among the receiving node and an immediate neighborhood node, that is responsible for processing the message based on the ring identifier included in the received message, including: an act of the receiving node referring to a two-way agreement cached at the receiving node, the two-way agreement previously agreed to between the receiving node and the immediate neighbor node subsequent to the receiving node and the immediate neighbor node detecting their locations relative to one another on the ring of nodes in response to a change in the configuration of the ring of nodes, the two-way agreement defining message processing responsibility between the receiving node and the immediate neighborhood node for ring identifiers on the ring of nodes between the receiving node and the immediate neighborhood node in accordance with configurable rules, caching the two-way agreement at the receiving node providing the receiving node with local knowledge of ring identifiers that are the responsibility of the immediate neighborhood node, the defined processing responsibility for ring identifiers in the cached two-way agreement having previously been split between the immediate predecessor neighbor node and the immediate successor neighborhood prior to the change in the configuration of the ring such that the receiving node is responsible for at least some ring identifiers that were previously the responsibility of the immediate predecessor neighbor node and at least some ring identifiers that were previously the responsibility of the immediate successor neighborhood; and an act of the receiving node determining from the two-way agreement whether the receiving node or the immediate neighborhood node is responsible for processing the message based on the ring identifier included in the message; and an act of the receiving node directing the message to the next appropriate component to process the message based on the determination of message processing responsibility.