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

5. Rate limiter для партнёрского API

Лёгкая

Формат — секция system design. Сценарий наш: партнёрское API банка. Пройдите шаги: уточните требования, оцените нагрузку, выберите решения, нарисуйте схему.

2000 партнёров (интернет-магазины, бухгалтерские сервисы) ходят в API выставления счетов. По договору — 50 запросов в секунду на партнёра.

Запросы распределяются между 20 экземплярами API-шлюза. Лимит должен считаться общий на партнёра, а не 50 на каждый экземпляр.

В работе: Один партнёр с ошибкой в цикле повторов может положить API для остальных 1999.

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

Источник: Т‑Банк: секция system design (API, оценка нагрузки). Условие пересказано своими словами.

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