Перевод защищают транзакцией, проверкой суммы и остатков, стабильным порядком блокировки счетов и уникальным идентификатором операции.
Как защитить транзакцию перевода?
Перевод защищают транзакцией, проверкой суммы и остатков, стабильным порядком блокировки счетов и уникальным идентификатором операции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Перевод защищают транзакцией, проверкой суммы и остатков, стабильным порядком блокировки счетов и уникальным идентификатором операции.
Списание и зачисление должны фиксироваться вместе или не происходить вообще. Суммы хранят точно, а условия проверяют внутри защищённой операции, не только заранее в интерфейсе. Повтор запроса с тем же ключом не должен создавать второй перевод. Журнал проводок и сверка обнаруживают расхождения; внешний вызов провайдера не становится атомарным с БД только из-за SQL-транзакции.