Diciamo che voglio progettare un sistema distribuito il cui unico scopo è assegnare ad ogni nodo in esecuzione un identificatore univoco in un piccolo intervallo (Say, 5-100 nodi in un identificatore a 10 bit). Quando viene aggiunto un nodo, dovrebbe ottenere un identificatore non utilizzato. Dobbiamo supportare più di 1024 nodi aggiunti e rimossi, quindi ovviamente è necessario un sistema per rilasciare gli identificatori.
Dai primi principi, quali tecniche sarebbero state utilizzate per implementare un sistema come questo? Come dovrebbero essere aggiunti nuovi nodi al sistema e conoscere gli altri? In che modo gli identificatori possono essere rilasciati quando un nodo si arresta in modo anomalo, garantendo al contempo che nessuno dei due nodi in esecuzione abbia lo stesso identificativo? È possibile rendere un sistema come questo tollerante ai guasti?
C'è un metodo con cui posso testare le idee che devo vedere se funzionano effettivamente in presenza di errori, ecc.?