Подготовка к интервью

Вопросы по System Design на собеседовании

889 вопросов по System Design

889 вопросов 1634 компании 353 технологии

Что проверяют на интервью

Как устроена подборка

В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.

Каталог

Результаты поиска

Найдено: 889
System Design

Как обеспечить строгий порядок обработки событий для конкретного пользователя при горизонтальном масштабировании воркеров?

Маршрутизируйте события одного пользователя в одну упорядоченную partition и обеспечьте последовательную обработку этого ключа. Масштабирование происходит по разным ключам, а не внутри одной последовательности.

Читать ответ
System Design

Согласны ли вы отказаться от сквозного шифрования, чтобы поддержать серверный полнотекстовый поиск по сообщениям?

Нельзя незаметно отказаться от E2EE ради поиска: это меняет модель доверия и обещания пользователю. Сначала нужно определить приоритеты и рассмотреть поиск на клиенте или локальный индекс.

Читать ответ
System Design

Почему словарь не обеспечивает идемпотентность запроса

Проверка и резервирование ключа не атомарны: оба запроса могут увидеть отсутствие записи до завершения другого. Потокобезопасность отдельной операции словаря не защищает весь сценарий.

Читать ответ
System Design

Как спроектировать распределённый замок (Distributed Lock / Redlock) с помощью Redis и учесть случай, когда воркер завис в паузе GC?

TTL-lock может истечь во время паузы GC, после чего старый worker продолжит работу одновременно с новым. Для защиты ресурса нужен fencing token или проверка версии, а не только продление TTL.

Читать ответ
System Design

Как бы вы спроектировали онлайн-систему магазина примерно с тысячей товаров и частыми обновлениями наличия и цен? Какие компоненты выделили бы?

Для тысячи товаров начните с модульного backend и реляционной БД: каталог, цены, остатки, корзина и заказы. Микросервисы не нужны только из-за частых обновлений.

Читать ответ
System Design

ИИ предлагает сделать экспорт заказов в FastAPI фоновыми задачами и вернуть клиенту ссылку на файл сразу. В API уже есть клиенты старой версии, а один экспорт может занимать 10 минут. Где ты не доверишься этому решению и что выберешь первым?

Сначала проверьте контракт старых клиентов и требования к надёжности: ссылка на ещё не созданный файл вводит в заблуждение, а десятиминутная BackgroundTasks-задача может потеряться при рестарте.

Читать ответ
System Design

[имя] спросил: Как бы вы подошли к задаче обеспечения порядка обработки/доставки событий в распределённой системе?

Сначала определите, нужен ли глобальный порядок или достаточно порядка для одного заказа, пользователя либо другого ключа. Обычно выбирают упорядочивание по ключу и явные версии событий.

Читать ответ
System Design

[имя] спросил: спроектируй пайплайн обработки большого числа URL одного сервиса: нужно максимально эффективно скачать HTML, извлечь нужные данные и сохранить их, не превышая лимит в 1000 одновременных запросов. Источник URL может быть файлом, БД, Kafka-топиком или внешним API.

Постройте потоковый конвейер с адаптером источника, ограниченной очередью, пулом загрузчиков, парсерами и пакетной записью. Лимит 1000 должен действовать на все активные запросы вместе.

Читать ответ
System Design

Что должно происходить, если скидка была зарезервирована, но покупатель не смог или отказался оплатить покупку, например из-за ошибки связи с банком или недостатка средств на карте?

Резерв скидки должен иметь срок и состояния. При подтверждённом отказе или истечении резерва его освобождают; при неопределённом результате оплаты сначала уточняют статус у платёжной системы.

Читать ответ
System Design

Как бы вы организовали слоистую архитектуру сервиса создания заказов с богатой доменной моделью: какие слои и сущности были бы в коде?

Выделите транспортный слой, application-сценарий, доменную модель и инфраструктуру. Заказ хранит бизнес-инварианты, а сценарий координирует репозитории, транзакцию и внешние действия.

Читать ответ
System Design

Как обеспечить сохранение истории диалога при перезапуске WebSocket сервера?

История должна храниться вне памяти WebSocket-процесса — в долговечной БД. После переподключения клиент запрашивает сообщения после последнего подтверждённого номера или курсора.

Читать ответ