Используют устойчивый бизнес-ключ или idempotency key и атомарный контроль на стороне целевой системы. Простая проверка SELECT перед INSERT подвержена гонке.
Как определяли, что запись уже существует и её не нужно записывать повторно?
Используют устойчивый бизнес-ключ или idempotency key и атомарный контроль на стороне целевой системы. Простая проверка SELECT перед INSERT подвержена гонке.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Используют устойчивый бизнес-ключ или idempotency key и атомарный контроль на стороне целевой системы. Простая проверка SELECT перед INSERT подвержена гонке.
В реляционной БД помогают UNIQUE и подходящий upsert; в пайплайне — идентификатор партии, журнал обработанных событий и согласованная публикация результата. Важно отличать повтор события от новой версии сущности. Хеш содержимого может помогать сравнить данные, но не заменяет определения ключа и правил обновления.