Здравствуйте. Потихоньку развиваю свои навыки. Пока не сильно углублялся в исходники этой темы, но использую транзакции из laravel для связок важных sql запросов.
Например, у юзера на сайте есть баланс. При клике на "купить" я отнимаю у него баланс и добавляю купленный товар в транзакции. Если один из запросов не проходит - юзер получает ошибку, мол, повторите еще раз.
Второй пример: при клике на "продать через 30 минут" я ставлю задачу в очередь с указанием айди товара. Тут чуть сложнее: если sql запрос про продажу предмета фейлится, мне нужно сказать ларавелю, что задача failed. При этом, мне нужно возвратить все остальные изменения, не касающиеся базы данных вручную.
А теперь вопрос: есть ли вообще шанс юзеру получить подобную ошибку и имеет ли смысл писать логику для обработки фейла запроса sql? Допустим, что живем в мире идеальной бизнес логики без ошибок в коде, но в обычном мире linux с обычным MySQL (otherSQL)
Когда я делал систему начисления платежей за работу- закладывал логику отката операций. Иногда на этапе тестирования дыры возникают в настолько неожиданных местах... поэтому в "идеальной бизнес логике" нужно связывать все эти сущности- транзакции, списания и прочее. Сперва проверка на возможность операции, после выполнение- успешность выполнения. Если нет- откат, ошибка. Бывает всякое)