Редиректы обслуживает быстрый read-path с кешем; создание ссылок пишет в основное хранилище, а аналитика обрабатывает события асинхронно.
Проектирование высокоуровневой архитектуры сервиса
Редиректы обслуживает быстрый read-path с кешем; создание ссылок пишет в основное хранилище, а аналитика обрабатывает события асинхронно.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Исходя из заданных функциональных и нефункциональных требований, а также рассчитанных параметров (объём данных, RPS, пропускная способность), необходимо разработать схему high‑level архитектуры системы.
Создать общую схему архитектуры сервиса сокращения ссылок, включающую:
- компоненты приёма запросов (API, балансировщик нагрузки);
- хранилище (основное и/или кеш);
- подсистему аналитики переходов;
- механизм ограничения частоты запросов (rate limiting);
- TTL и процесс очистки просроченных ссылок.
Ответ
Редиректы обслуживает быстрый read-path с кешем; создание ссылок пишет в основное хранилище, а аналитика обрабатывает события асинхронно.
Поток создания: балансировщик → API → проверка лимитов → генерация уникального кода → БД. Уникальный индекс защищает от коллизий; повторный запрос создания можно связать с ключом идемпотентности.
Переход: API ищет код в кеше, при промахе — в БД, проверяет expires_at и возвращает redirect. Аналитическое событие уходит в очередь, её задержка не должна тормозить переход. TTL кеша не превышает оставшийся срок ссылки; фоновая очистка удаляет просроченные записи, но не заменяет проверку срока при чтении. Число реплик и шардов выбирают по заданной нагрузке, которой здесь нет.