Вот возникла интересная задача. Скорее даже теоретическая.
Пусть у нас есть некоторая сетевая система с несколькими равноправными серверами. Клиентское ПО может подключится к любому и конкретный выбор не отражается на поведении. Клиентское ПО пишет и читает данные с сервера. Время от времени сервера обмениваются данными полученными от клиентов. Пожалуй наиболее похожая система это Active Directory для Windows 2000 и выше.
Проблема: регистрация пользователя.
Пусть пользователь Вася Пупкин зашёл на сервер A и зарегистровал логин vasja, а пользователь Вася Тяпкин зашёл на сервер B и тоже зарегистрировал логин vasja. Очевидна проблема — что делать с двумя одинаковыми логинами (пользователи идентифицируются по GUIDам, но для аутенфикации используются логины)? Тем более что до того как ситуация будет обнаружена оба пользователя могут записать некоторые данные, связанные с ними.
Я не хочу
Заставлять регистрироваться одновременно на всех серверах
Нарушать равноправие серверов и помечать какой-либо сервер как главный.
Удалять какие-либо учётные записи и связанные с ними данные.