Вступить в клуб →
сложнаявопросAPI и интеграции

Деньги списаны, а заказ не создан: что описать в требованиях

Сценарий оформления заказа: сервис заказов синхронно вызывает платёжный сервис, получает подтверждение списания, затем сохраняет заказ в своей БД — и падает на сохранении.

В результате деньги у клиента списаны, заказа в системе нет. Единой транзакции между двумя сервисами не существует.

Что должен описать системный аналитик в требованиях к сценарию?

  • Объединить оба шага в одну транзакцию БД, подключив платёжный сервис к той же транзакции приложения
  • Поменять шаги местами: сначала создать заказ, потом списать деньги — тогда рассогласование исчезнет само
  • Компенсирующий сценарий: при сбое сохранения выполняется возврат платежа, статусы заказа явные, повтор идемпотентен
  • Повторять сохранение заказа в цикле до успеха: база данных рано или поздно ответит и заказ сохранится

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела