Middle+ — Principal
48
Проектирование системы новостных лент
Условие задачи
Создать архитектурное решение для сервиса новостных лент, которое будет обеспечивать публикацию, отображение и кэширование материалов из внешних источников.
Функциональные требования:
- Пользователь должен иметь возможность размещать сообщения в своём личном новостном канале (включая ссылки на оригинальные ресурсы).
- Предоставить возможность просматривать как собственные, так и чужие каналы с бесконечной прокруткой контента.
- Для новостей с внешними ссылками выводить сниппет: заголовок, краткое описание и изображение.
- Реализовать просмотр содержимого оригинального ресурса без перехода наружу за счёт кэширования.
Нефункциональные требования:
- Доступность API не менее 99.9%.
- Время отклика API должно быть ≤ 100 мс.
- Хранить данные минимум 5 лет.
Требуемые архитектурные компоненты:
- Хранилища и кэширующие слои для внешнего контента.
- API для создания и чтения новостных лент.
- Асинхронные воркеры, отвечающие за загрузку и обновление сниппетов.
- Механизмы масштабирования и обеспечения отказоустойчивости.