- keep a list of nodes - store which nodes saved backups to which nodes - offer a suitable node for storage - when a backup is requested, find a node that has enough free space and is willing to receive data - broadcast messages - updates etc.