Двойное списание платежа в коде, прошедшем ревью: разбор инцидента глазами инженера
Оригинал: Платёж списывается дважды. Найдите причину в коде, который прошёл ревью
Конспект редакции
Разбор реального кейса, когда платёжный сервис с зелёными тестами и пройденным ревью дважды списывал деньги с карты — автор показывает, как два разных сценария привели к одному багу.
Разбор реального инцидента в платёжном сервисе: код прошёл ревью, тесты были зелёными, в базе зафиксирован один успешный платёж — но с карты клиента деньги списались дважды. Автор показывает, что к дублированию привели два разных сценария, и оба оказались неочевидными для стандартного тестирования.
Материал построен как расследование по коду и логам: шаг за шагом восстанавливается, где именно логика дала сбой и почему ревью не поймало проблему. Особый акцент — на концепции идемпотентности и на том, как её правильно выстраивать в платёжных системах, чтобы повторные списания были исключены на архитектурном уровне.
Для индустрии это напоминание, что зелёные тесты не гарантируют корректность в распределённых финансовых сценариях, а ревью без понимания бизнес-контекста может пропустить критичные дефекты. Кейс полезен backend- и платёжным командам как чек-лист по идемпотентности. Полный разбор — на Хабре.
Материал агрегирован; полный текст — на сайте Хабр — ИТ-новости.
Контекст
Публикация на Хабре от компании OTUS в формате технического разбора инцидента — типичный образовательный контент для разработчиков.
Комментарий редактора Игоря
К нашему изданию отношения не имеет, но полезно как напоминание: даже в кинопрокатных и стриминговых биллинговых системах такие баги бьют по репутации платформы.



