Дизайн систем и реальная оценка решений
Спроектируй pipeline для сбора продуктовых и игровых событий от клиентов и backend-сервисов. События могут приходить пачками и должны быть доступны для аналитики и отчётов.
Спроектируй систему real-time мессенджера. Пользователи отправляют текстовые сообщения 1-to-1 и в группы. Сообщения должны доставляться в реальном времени с гарантией at-least-once.
Спроектируй сервис загрузки файлов для аватарок, PDF и документов. Пользователь загружает файл, система валидирует его, сохраняет и возвращает URL для последующего доступа.
Спроектируй систему резерва остатков для e-commerce. Пользователь кладёт товар в корзину, система должна временно зарезервировать stock, чтобы не было oversell.
Спроектируй сервис уведомлений, который умеет отправлять email, push и SMS. Уведомления не обязательно мгновенные, но не должны теряться.
Внешний платёжный провайдер шлёт webhook-события об оплате, возвратах и отменах. Нужно корректно обрабатывать повторы и out-of-order события, не ломая order state.
Спроектируй систему rate limiting для API Gateway. Система должна ограничивать запросы по IP и по API key. Лимиты: 100 req/min per IP, 1000 req/min per API key.
Спроектируй сервис search-as-you-type для поиска товаров или пользователей. Подсказки должны возвращаться очень быстро при каждом вводе символа.
Спроектируй систему сокращения URL наподобие bit.ly. Пользователь вводит длинный URL — получает короткую ссылку. Переходы по короткой ссылке должны работать быстро.
Спроектируй pipeline обработки пользовательского видео: загрузка, транскодинг в несколько качеств, генерация preview и последующая раздача через CDN.