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

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

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

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

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

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

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

Каталог

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

Найдено: 889
System Design

[имя] спросил: Что произойдёт, если пользователь напишет в Telegram: «Есть ли свободное время на стрижку 15 августа в 17:00?»

Бот должен уточнить недостающие параметры, проверить доступность в системе записи и ответить на основе реального расписания. Вопрос о свободном времени ещё не является согласием на бронирование.

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

Какая информация приходит в API Gateway при создании заявки на кредит?

Набор определяется контрактом кредитного API: обычно это идентификатор клиента, параметры заявки, аутентификационный контекст и технические идентификаторы запроса. По названию Gateway точную схему не восстановить.

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

ETL из S3: потоковый разбор и защита от повторной обработки

Разделите ETL на обнаружение объектов S3, определение формата, потоковый разбор и запись через соответствующий sink. Повторный запуск не должен дублировать уже обработанные данные.

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

Какое основное свойство отличает микросервисную архитектуру и как достигается автономность сервисов?

Ключевое свойство — автономность сервисов вокруг бизнес-возможностей, включая независимое развёртывание. Само по себе общение по сети ещё не делает систему микросервисной.

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

Опишите dataflow: как изменения на складе доходят до фронта через Kafka, сервис каталога и Redis? Что такое сервис каталога и как определяется популярность карточек?

Типовой поток: склад публикует изменения в Kafka, каталог обновляет модель чтения и кеш Redis, а frontend получает данные через API. Реальная схема и формула популярности зависят от проекта.

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

Как можно было бы организовать развёртывание проще и эффективнее, чем вручную по SSH, в том числе для кластера хостов или без Docker?

Автоматизируйте воспроизводимую поставку артефакта через CI/CD и управление конфигурацией. Docker необязателен: приложение можно запускать как systemd-сервис с версионированными release-каталогами.

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

LeetCode #? — Клиент жалуется на медленный endpoint с аналитикой продаж: сложный SQL с множеством JOIN и вычислениями может выполняться более минуты. Допускается задержка актуальности данных на 5–10 минут. Какое самое простое решение вы предложите?

При допустимой задержке 5–10 минут самое простое решение — заранее вычислять результат и отдавать готовый кеш или отчётную таблицу. Тяжёлый SQL не должен выполняться на каждый пользовательский запрос.

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

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

Победителя определяет атомарное резервирование в общей БД, а не время прихода запроса на разные серверы. TTL не должен освобождать слот, пока возможна неразобранная успешная оплата.

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

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

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

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

Можно ли переделать outbox так, чтобы избежать UPDATE и связанного с ним MVCC bloat?

Можно сделать outbox append-only и хранить прогресс relay отдельно, но это меняет модель обработки, а не устраняет все затраты. DELETE тоже создаёт MVCC-мусор; иногда удобнее очистка партициями.

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

[имя] спросил: Спроектируйте на верхнем уровне сервис записи в косметологический салон через Telegram: данные находятся и в CRM, и в Google Sheets, а запись должна попадать в CRM.

Сделайте CRM источником истины для слотов и подтверждённых записей, Telegram — интерфейсом, а Google Sheets — дополнительным источником по явно заданным правилам. Конфликты двух источников нужно разрешать заранее.

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

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

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

Читать ответ