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

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

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

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

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

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

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

Каталог

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

Найдено: 889
System Design

Расскажите, как дружили Kafka и Redis в проекте Softmedia (Redis кэшировал данные, обновления шли через Kafka).

Опишите поток: изменения фиксируются в основной БД, событие поступает в Kafka, consumer обновляет или инвалидирует Redis. Redis здесь ускоряет чтение, а Kafka доставляет изменения.

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

Что нужно сделать с продуктом, чтобы перейти на микросервисную архитектуру? Достаточно ли перевести его в Docker-контейнеры?

Docker-контейнеры меняют упаковку и запуск, но не превращают монолит в микросервисы. Нужны осмысленные границы ответственности, контрактов, данных и независимого выпуска.

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

Как реализовать версионирование API через URL, заголовки или Accept-header с минимальным дублированием кода?

Версионируйте внешний контракт, оставляя общую бизнес-логику в сервисах. URL /v1, специальный заголовок или media type в Accept должны выбирать адаптер входа и представление ответа.

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

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

Ограничьте размер загрузки и суммарные квоты, пишите во временный файл и контролируйте доступное место. Предварительная проверка свободного диска полезна, но не защищает от параллельных загрузок.

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

Спроектируйте и реализуйте сервис управления статусами заказов интернет-магазина цветов. Статусы: «создан», «ожидает оплаты», «оплачен», «доставлен», «завершён», «отменён». Внешняя бизнес-логика не важна: нужен сервис, управляющий переходами между статусами.

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

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

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

Уточните, кто платит комиссию, от какой суммы она считается, как округляется и что происходит при возврате. Технически комиссию и перевод нужно учитывать как согласованные записи операции.

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

Давай порассуждаем логически: какая может быть неправильная миграция базы данных, из-за которой при переключении на старую версию приложения получаем 500 ошибку (например, если в одном деплое одновременно удалили столбец и код, который к нему обращается)? Как этого избежать?

Старая версия падает, если миграция уже удалила или переименовала используемый ею столбец. Откат кода не откатывает совместимость схемы; применяют expand–migrate–contract.

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

Есть большой важный отчёт, который долго формируется, мы его кэшируем, но не знаем, как часто нужно его обновлять (в разные периоды по-разному, в зависимости от изменения данных). Как устроена инвалидация кэша в таком случае, как её делать?

Если актуальность отчёта зависит от изменений данных, используйте событийную инвалидацию или версию исходных данных, а TTL оставьте страховкой. Частоту обновления определяет допустимая устарелость.

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

Алгоритм распределения сообщений из нескольких очередей с учётом квот и полной загрузки канала

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

Читать ответ