«старое, надежное автоинкрементное int» довольно сильно зависит от того, насколько масштабируемой должна быть ваша база данных. Автоинкремент перестает работать в тривиальном случае, когда у вас есть настройка, по крайней мере, с двумя мастерами. Конечно, обойти это несложно, потому что это такая распространенная проблема; Различные механизмы базы данных могут координировать последовательность между мастерами, например, только один мастер может выделить из любой данной последовательности.
Когда вы разбираетесь в данных, обычно желательно знать ключ от ключа. Автоматически увеличенный идентификатор не содержит информации о том, какой шард должен содержать эту запись.
GUID решают проблему другим способом; два разных мастера имеют разные идентификаторы хоста (обычно это MAC-адрес). Так как это используется при вычислении нового GUID, отдельные мастера не могут создавать guid, которые сталкиваются. Кроме того, поскольку хост является частью идентификатора, его можно использовать для прямой идентификации сегмента, в котором находится запись.
Третий вариант - вообще не использовать суррогатные ключи (ни автоинкрементные целые числа, ни направляющие).