10 вопросов
Практика
Как бы ты спроектировал и разработал архитектуру сервиса сокращения URL, которая эффективно обрабатывает миллионы запросов перенаправления, с учётом генерации уникальных идентификаторов, сохранения данных, кеширования высокой доступности, горизонтального масштабирования и предотвращения злоупотреблений?
Разработай масштабируемый сервис для хранения и обмена текстом, похожий на Pastebin, который поддерживает создание, получение и обмен текстовыми фрагментами. Твой дизайн должен решить следующие задачи: реализация архитектуры хранилища для контента и метаданных, генерация уникальных коротких URL для доступа, применение ограничений на размер контента и политик истечения, управление контролем видимости (публичный, приватный, неиндексируемый), предоставление возможностей подсветки синтаксиса и внедрение механизмов модерации контента.
Спроектируй распределённую систему хранилища ключ-значение, которая поддерживает операции GET, PUT и DELETE и соответствует требованиям низкой задержки, отказоустойчивости и масштабируемости. Твой дизайн должен решать вопросы разделения данных между узлами, стратегию репликации, гарантии консистентности, механизмы разрешения конфликтов, обнаружение отказов узлов и автоматическую перебалансировку данных при изменении состава кластера.
Спроектируй высокодоступную распределённую систему кеширования, которая эффективно хранит и извлекает часто используемые данные на нескольких узлах, обеспечивая при этом консистентность данных, отказоустойчивость и оптимальную производительность.
Разработай и реализуй распределённую систему ограничения частоты запросов, которая контролирует интенсивность API-запросов на нескольких серверах. Твоё решение должно охватывать выбор алгоритма (например, token bucket vs. sliding window), архитектуру слоя хранилища для отслеживания количества запросов, применение ограничений частоты для пользователя/IP/API ключа, обработку HTTP-ответов, включая соответствующие коды состояния и заголовки, а также поддержку нескольких уровней ограничения частоты.
Спроектируй распределённую систему планирования задач, которая надёжно выполняет jobs на нескольких узлах в указанное время или с определёнными интервалами. Система должна поддерживать сохранение задач, гарантии exactly-once выполнения, уровни приоритета, управление зависимостями, автоматические retry'и, обработку сбоев и горизонтальную масштабируемость.
Спроектируй масштабируемую систему аутентификации с поддержкой регистрации пользователей, входа, управления сессиями и многофакторной аутентификации. Объясни, как ты реализуешь безопасное хеширование паролей, управление токенами (включая обновление и отзыв), защиту от brute-force атак, интеграцию OAuth для входа через социальные сети, и какие есть особенности при горизонтальном масштабировании в распределённой среде.
Разработай комплексную систему управления парковкой, которая моделирует ключевые сущности (структура парковки, несколько этажей, парковочные места разных размеров, автомобили и парковочные квитанции). Твоя система должна включать эффективный алгоритм распределения мест, который подбирает автомобили к подходящим по размеру местам, управлять потоками въезда и выезда автомобилей, рассчитывать динамические парковочные сборы, предоставлять отслеживание занятости в реальном времени, поддерживать несколько способов оплаты и обрабатывать одновременные операции на нескольких входных и выходных точках.
Спроектируй систему автомата по продаже, которая эффективно управляет несколькими одновременными транзакциями, сохраняя целостность данных. Твой дизайн должен включать: (1) конечный автомат, который моделирует полный жизненный цикл транзакции от режима ожидания через выбор товара, обработку платежа и выдачу товара; (2) функциональность управления инвентарем; (3) поддержку нескольких способов оплаты; и (4) механизмы, обеспечивающие атомарность между обработкой платежа и выдачей товара.
Спроектируй масштабируемую и безопасную систему Unified Payments Interface (UPI), которая поддерживает переводы денег в реальном времени между несколькими банками, при этом обеспечивая целостность транзакций, предотвращение мошенничества, высокую доступность, разрешение споров, соответствие нормативным требованиям и комплексное логирование аудита.