Вернуться в видеотеку

Мок-интервью по System Design: платёжный кошелёк

Кандидат проектирует кошелёк с пополнением, выводом и переводами между пользователями. Интервьюер проверяет расчёт нагрузки, консистентность, идемпотентность и обработку сбоев внешних платёжных систем.

Источник: ШОРТКАТ — менторская программа

Открыть на YouTube

Таймлайн

Коротко о видео

В этом мок-интервью кандидат проектирует сервис кошелька с покупкой и тратой монет, выводом на карту и переводами между пользователями. Разговор начинается со сбора функциональных и нефункциональных требований, оценки нагрузки и выбора консистентности для денежных операций. Затем кандидат описывает PostgreSQL-схему счетов и append-only журнала транзакций, интеграцию с банком и платёжной системой. Интервьюер подробно проверяет граничные случаи: потерянный webhook, повторный запрос, потерю ответа внешнего сервиса и падение воркера. Кандидат предлагает идемпотентные ключи, polling, статусы pending/checking, select for update skip locked, таймауты и упорядочивание блокировок. После решения есть обратная связь и обсуждение распределённой синхронизации.

Затронутые темы

Что взять на заметку

  • System Design начинается со сбора операций, ограничений и гарантий, а не с выбора технологий.
  • Для денег приоритетны инварианты баланса и согласованность, а историю транзакций удобно хранить отдельно от текущего состояния счёта.
  • Внешний сетевой вызов не следует держать внутри транзакции БД; работу можно передавать в состояние checking.
  • Webhook и polling дополняют друг друга, когда доставка событий от платёжного провайдера ненадёжна.
  • Идемпотентность, повторные запросы и порядок блокировок нужны для защиты от дублей и гонок.

Рекомендуем посмотреть

51:10
BackendSenior

Собеседование Python-разработчика: идемпотентность и Transactional Outbox

Кандидат решает системно-дизайнерскую задачу об обработке платёжных инструкций из брокера и гарантиях доставки. Затем интервьюер обсуждает с ним легаси и обоснование рефакторинга, а кандидат уточняет проект, команду и ожидания от Senior Python-разработчика.

1:44:28
BackendSenior

Мок-собеседование по System Design для Senior Backend Engineer

Мок-собеседование по System Design для Senior Backend Engineer: кандидат проектирует мультитенантную систему поддержки с чатами, тикетами и аналитикой. После сессии интервьюер разбирает решение, включая требования, границы доменов, изоляцию тенантов и хранение сообщений.