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

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

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

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

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

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

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

Каталог

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

Найдено: 889
System Design

Как интегрировали внешний сервис проверки чеков через REST API с Circuit Breaker и RabbitMQ, чтобы исключить потерю данных при сбоях?

Надёжная схема: сохранить чек и outbox-событие в одной транзакции, доставить его через RabbitMQ, а REST-проверку выполнять с ограниченными повторами и идемпотентностью.

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

Как устранить consumer lag, если один consumer уже вертикально масштабирован до предела, а данные должны попадать в read-модель почти в реальном времени?

Разделите обработку по независимым ключам и масштабируйте consumers горизонтально, предварительно выяснив узкое место. Для Kafka полезный параллелизм ограничен числом партиций и требованиями к порядку.

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

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

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

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

Как спроектировать стратегию zero-downtime-миграции при удалении колонки из таблицы БД со 100 млн строк без остановки записи?

Удаляйте колонку этапами: сначала прекратите её использование во всех версиях приложения, затем проверьте зависимости и только потом выполняйте DROP COLUMN с ограничением ожидания блокировки.

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

Пользователь загружает видео и выбирает необходимую обработку, которую он хочет получить. Сервис принимает видео, применяет необходимую обработку и выдает итоговый результат. Под обработкой мы можем понимать, например, следующее: сделать видео чб, перевернуть, ускорить в N раз и т.д. Важно, чтобы пользователь мог следить за прогрессом обработки.

Вынесите обработку видео в фон: загрузка в объектное хранилище, создание задания, очередь и масштабируемые воркеры. Прогресс храните отдельно и отдавайте клиенту через polling, SSE или WebSocket.

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

Опиши, как ты видишь идеальную схему деплоя приложения — пошагово, от момента коммита до момента, когда код работает на проде.

Хорошая схема: commit, проверки, сборка неизменяемого артефакта, staging, совместимые миграции, контролируемая выкладка и проверка метрик. Один и тот же артефакт продвигают между окружениями.

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

Сервис модели постоянно висит и раз в неделю в него отправляют клиентов — не кажется ли это неэффективным, и что можно сделать?

Если модель нужна раз в неделю и допустим холодный старт, постоянный выделенный сервис может быть избыточным. Рассмотрите пакетное задание, масштабирование до нуля или общий пул вычислений.

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

Опиши структуру реляционной базы данных для интернет-магазина: покупатели, товары и заказы (таблицы и поля без типов).

Минимальная схема включает покупателей, товары, заказы и позиции заказа. Позиции связывают заказ с товарами и сохраняют количество и цену на момент покупки.

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

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

Задайте общий deadline, независимые таймауты и ограниченную параллельность внешних вызовов. Быстрые результаты не должны ждать бесконечно медленные или нестабильные зависимости.

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

Что исправить в FastAPI-сервисе перевода средств

Нужны проверка владельца счёта, точное представление суммы, единая транзакция, защита конкурентного списания и идемпотентность. Два независимых UPDATE могут оставить деньги списанными без зачисления.

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

Как бы вы спроектировали хранение и быстрый поиск по большому потоку IoC (индикаторов компрометации: хэши, IP-адреса, домены)?

Разделите поток поступления IoC, нормализацию и быстрый поиск: очередь, идемпотентная обработка, индекс точного совпадения и отдельные индексы для доменных или сетевых запросов.

Читать ответ