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

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

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

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

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

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

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

Каталог

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

Найдено: 889
System Design

Как устроен паттерн BFF (Backend-for-Frontend) и в каких сценариях он предпочтительнее единого API Gateway?

BFF предоставляет интерфейс, адаптированный под конкретный frontend, вместо одного универсального API для всех. Он полезен, когда клиентам нужны существенно разные данные и сценарии взаимодействия.

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

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

Строгую атомарность дают поддерживаемые распределённые транзакции, например 2PC, либо перенос инварианта в одну транзакционную границу. Saga обеспечивает компенсации, но не равна общему ACID rollback.

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

Как два сервиса взаимодействовали через Kafka: что происходило на входе и выходе, как проходила заявка по pipeline до решения об одобрении или отказе?

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

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

Чем паттерн API Gateway отличается от паттерна BFF (Backend-for-Frontend)? В каких случаях для разных типов клиентов — мобильных, веб- и десктопных — стоит писать отдельные бэкенды?

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

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

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

Модульность — разделение ответственности внутри системы; микросервисы дополнительно предполагают самостоятельные процессы и независимое развёртывание. Наличие сервисного класса не делает модуль микросервисом.

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

Как происходит обогащение данными о клиенте (метаданными)?

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

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

Мы кэшируем данные популярного сериала. В момент выхода новой серии миллион пользователей одновременно запрашивают эти данные, а TTL кэша истекает. Что произойдёт с базой данных и как защитить систему от этой проблемы?

Возникнет cache stampede: множество одновременных промахов отправит одинаковые запросы в базу. Нужны объединение обновлений, выдача допустимо устаревшего значения и ограничение нагрузки на источник.

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

Опишите техническую архитектуру компонента скоринговой платформы, взаимодействующего с ML-моделью: разделение сервисов и ответственности, коммуникации между ними и ваш личный вклад.

Разделите API скоринга, получение и подготовку признаков, inference и сохранение решения. На интервью опишите фактические границы системы и отдельно свой личный вклад.

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

Пересчитайте и адаптируйте дизайн при нагрузке 10 загружаемых изображений в секунду.

При постоянных 10 изображениях в секунду получится 864 000 изображений в сутки. Дальнейший расчёт требует среднего размера, числа производных файлов, времени обработки и срока хранения.

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

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

Можно фиксировать успехи и ошибки отдельно, если известен результат каждого сообщения. Неподтверждённые сообщения повторяются, а получатель должен выдерживать дубликаты.

Читать ответ