Pastry provides the following capability. Each node in the Pastry network has a
unique numeric identifier (nodeId). When presented with a message and a numeric key,
a Pastry node efficiently routes the message to the node with a nodeId that is numerically
closest to the key, among all currently live Pastry nodes. The expected number of routing
steps is O(log N), where N is the number of Pastry nodes in the network. At each Pastry
node along the route that a message takes, the application is notified and may perform
application-specific computations related to the message.