In un sistema asincrono distribuito, la serializzabilità non può essere raggiunta, ma dobbiamo ancora fornire in qualche modo la semantica.
Considerare il requisito del tutto naturale che l'utente debba avere un'e-mail univoca o nessuna e-mail. (L'opzione di non avere un'e-mail implica che non possiamo usare l'e-mail come indirizzo di un attore unico.)
Cosa dovrebbe accadere quando il sistema riceve due richieste simultanee per la creazione di un utente con la stessa email? Uno di loro alla fine dovrebbe fallire.
Potremmo interrogare tutti gli attori degli utenti chiedendo se qualcuno ha la stessa email, ma a causa della concorrenza nessuno dei due nuovi utenti potrebbe essere creato in quel momento. Lo stesso problema esiste per l'aggiornamento della posta elettronica.
Come ottenere queste funzionalità senza compromettere scalabilità e prestazioni? Come faccio a lasciare che il client ora che la sua richiesta non è riuscita?