Если в силу каких-то
обстоятельств непреодолимой силы окажется невозможно изменение архитектуры, которое (вполне здравомысленно) предложил
Дмитрий Шицков, то могу предложить костыль. Каждая реплика перед созданием записи делает паузу на random(0..10.0) секунд, потом делает запрос, нет ли уже такой записи, если нет, то создаёт.
В случае ежесекундных записей пауза может быть на random(0..1000) миллисекунд.
Так-то можно и без рандомной паузы, транзакции знают своё дело и одна из реплик в любом случае окажется первой. Просто мы хотим чуток размазать всплески нагрузки (а вдруг у нас тысячи или миллионы реплик?)
Подчеркну: костыль - это лишь костыль. Не следует его воспринимать как нормальное решение.