Вы собираетесь использовать ферму серверов для базы данных? Это не звучит "правильно".
Возможно, вы захотите использовать GUID для идентификаторов. Они могут быть большими, но у них нет дубликатов.
С единственным значением "следующий идентификатор" вы столкнетесь с конфликтом блокировок для этой записи. В прошлом я использовал таблицу диапазонов идентификаторов (RangeId, RangeFrom, RangeTo). Таблица диапазонов имеет первичный ключ «RangeId», который является простым числом (например, от 1 до 100). Процедура «получить следующий идентификатор» выбирает случайное число от 1 до 100, получает первую запись диапазона с идентификатором ниже, чем случайное число. Это распределяет блокировки по N записям. Вы можете использовать 10, 100 или 1000 записей диапазона. Когда диапазон полностью используется, просто удалите запись диапазона.
Если вы действительно используете несколько баз данных, вы можете вручную убедиться, что набор диапазонов каждой базы данных не перекрывается.