how to find the locations of keys, how new nodes join the system, and how to recover from the failure (or planned departure) of existing nodes