История изменений
Исправление shimshimshim, (текущая версия) :
Да и если уже взяли деньги можно сделать возврат.
для операции
при заказе еды с доставкой, необходимо списать деньги со счёта, подать заявку на кухню, вызвать курьера. Все три действия должны произойти атомарно - если одно из них исполнить невозможно, два других нужно отменить, и передать пользователю ошибку.
в реальном мире ни на одном из шагов здесь нельзя гарантировтаь атомарность.
Даже в типичном книжном примере транзакционного перевода денег с одного счета на другой в реальном мире банки не используют транзакции и не лочат строчки чтобы не дай бог второй параллельной операцией не перевелось больше что есть на счете. Пишется лог, который когда-то потом с задержкой (иногда значительной) обрабатывается. Поэтому например на дебетовых счетах возможен технический овердрафт.
Большинство проблем решаются административными методами.
Оп, на то ты и инженер, чтобы в каждом конкретном случае находить оптимальное решение из всех возможных.
Исходная версия shimshimshim, :
Да и если уже взяли деньги можно сделать возврат.
для операции
при заказе еды с доставкой, необходимо списать деньги со счёта, подать заявку на кухню, вызвать курьера. Все три действия должны произойти атомарно - если одно из них исполнить невозможно, два других нужно отменить, и передать пользователю ошибку.
в реальном мире ни на одном из шагов здесь нельзя гарантировтаь атомарность.
Большинство проблем решаются административными методами.
Оп, на то ты и инженер, чтобы в каждом конкретном случае находить оптимальное решение из всех возможных.