Войти Регистрация
System design

33. Курсы валют и обмен в приложении Т‑Банка

Лёгкая

Пройдите шаги: уточните требования, оцените нагрузку, выберите решения, нарисуйте схему.

Клиент открывает обмен, видит «1 ¥ = 11,42 ₽», вводит 5000 ₽ и нажимает «Обменять». Курс меняется каждую секунду, но списать нужно ровно по тому, что клиент видел.

Для расчёта: в пик, когда рубль резко двигается, экран обмена открывают 2 млн раз в час. Пока экран открыт (в среднем минуту), приложение запрашивает курс раз в 5 секунд.

Курсы банка считает сервис ценообразования по котировкам биржи и выдаёт их раз в секунду для 12 валютных пар.

В работе: Экран обмена валюты открывают перед поездкой и при скачках курса, и в эти минуты нагрузка растёт в разы.

Как проверяем Шаги с вариантами и расчётами проверяем автоматически: число засчитано, если оно в пределах допуска от эталона. Схему вы оцениваете сами по чек-листу. Зачёт — схема набрала 60 % чек-листа и верны 70 % остальных пунктов. Ответ один на подход: после него показываем разбор.
кэшснимок в памятикотировка с TTLподпись

Источник: на задачах Т‑Банка: обмен валюты в приложении. Условие пересказано своими словами.

  1. Уточнить требования — Что спросить у интервьюера?
  2. Оценить нагрузку
  3. Отдача курсов — Откуда отдавать курсы для 6,7 тыс. запросов в секунду?
  4. Обмен по показанному курсу — Как гарантировать, что обмен пройдёт по курсу с экрана?
  5. Схема — Опишите путь курса от ценообразования до экрана и путь обмена.