Какую стратегию конкурентного доступа выбрать при двух параллельных записях на одну дату в системе записи в консульство?

Зафиксируйте вместимость слота на уровне БД: уникальность для одного места либо атомарное уменьшение остатка для нескольких. Проверка «свободно» перед отдельной записью не защищает от гонки.

Короткий ответ

Что ответить на собеседовании

Зафиксируйте вместимость слота на уровне БД: уникальность для одного места либо атомарное уменьшение остатка для нескольких. Проверка «свободно» перед отдельной записью не защищает от гонки.

Подробный разбор

Ответ с пояснениями

Зафиксируйте вместимость слота на уровне БД: уникальность для одного места либо атомарное уменьшение остатка для нескольких. Проверка «свободно» перед отдельной записью не защищает от гонки.

Если слот единственный, обе попытки вставки конкурируют за уникальный ключ, и только одна завершается успешно; проигравшему возвращают понятный конфликт. Для вместимости больше одного используют условный UPDATE или блокировку строки в короткой транзакции. Если бронь требует последующего подтверждения, предусмотрите срок резерва и идемпотентный переход состояния. Не удерживайте транзакцию во время внешней оплаты или ожидания пользователя.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее