TGViewer
System Design World System Design World @system_design_world · 6.02K subscribers
Post #252 3.42K
😎 Каждый бэкенд-инженер должен знать, как обрабатывать платежи

🍕 Проектируем ли мы сервис доставки еды или заказ такси, или любую другую платную услугу - везде можно углубиться в логику обработки платежа.
Его happy path, сбои.

‼️ В недавно вышедшей habr статье подробно расписаны состояния платежа и алгоритмы переходов.

Типовые статусы платежа
✅ Happy path: Инициирован, Обрабатывается, Успешно завершен
❌ Сбойные: Не выполнен, Ожидает повторной попытки, Возвращен, Отменен

🗓 Статусы предлагается менять в таблице с режимом записи append-only. Так чтобы видели всю историю изменений.

2️⃣ Проблемы с обработкой платежа делим на 2 типа:
1) Временные - когда можно сделать retry. К примеру, сетевая ошибка.
2) Существенные - не делаем retry. К примеру, недостаточно средств.
Наш главный сервис должен иметь логику по распознаванию таких проблем.

✨ Прикручиваем соответственно две очереди:
1) Retriable
2) Dead Letter Queue

🗝 Exactly-once Delivery
Если делаем повторную отправку из-за сетевой ошибки(❌ ), есть риск двойного списания🥺
К примеру, в ту сторону запрос с платежом прошёл. Обратно ответ не вернулся. А платёж успел осуществиться🤦
=> Поэтому приправляем нашу систему ключом идемпотентности реализуя тем самым семантику доставки exactly-once.

🔥 - Хорошая выжимка. Ожидаю больше подобных рецензий
  • 🔥 57
  • 👍 7
  • ❤ 6
More from @system_design_world
  1. Oct 11, 2026🍁 Excalidraw не только лишь для System Design Распарсили с сыном стихотворение Тютчева "Е…
  2. Oct 9, 2026Если вдруг новость про это вот всё обошла вас стороной... Возможно, и к лучшему. Хочется в…
  3. Oct 8, 2026Архитектурные диаграммы без боли: C4, Sequence, ER Как вам начало? Сразу сделал монтаж. Сд…
  4. Oct 8, 2026Post #782
  5. Oct 7, 2026Константин из Авито в гостях! Константин Воливач — E6 Engineer из Авито. Покажет своё диаг…
  6. Oct 6, 2026System Design. Back to Basic. Балансировка. Пробую новый формат. Посмотрите, пожалуйста, к…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →