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

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

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

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

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

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

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

Каталог

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

Найдено: 889
System Design

Каким образом паттерн Outbox Pattern помогает гарантировать, что событие в брокер сообщений RabbitMQ уйдет только в том случае, если транзакция в реляционной БД завершилась успешно?

Outbox сохраняет бизнес-изменение и запись события в одной транзакции БД. Отдельный relay публикует только подтверждённые outbox-записи, поэтому rollback не оставляет событие для отправки.

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

AI предложил заменить поле суммы `amount` в публичном REST API на новую структуру без версии, потому что «клиенты быстро обновятся». У API 12 внешних клиентов и релиз через два дня. Где ты не доверишься этому совету и какое решение выберешь?

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

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

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

Используйте single-flight или блокировку по ключу: одно выполнение обновляет кеш, остальные ждут либо получают допустимое устаревшее значение. Повторно проверьте кеш после получения блокировки.

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

ИИ предложил хранить статус 10-минутного экспорта в памяти FastAPI-процесса. Как лучше отреагировать?

Выберите вариант с устойчивым хранилищем статуса и проверкой повторов заданий. Память FastAPI-процесса теряется при рестарте и не разделяется автоматически между workers.

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

Как решить ситуацию, когда консюмер не успевает обрабатывать сообщения и копится очередь?

Сравните скорость поступления и обработки, найдите узкое место и увеличьте эффективную производительность потребителей. Рост очереди нельзя надёжно устранить только увеличением её размера.

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

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

При read-through приложение читает через кеш, а сам кеш или его адаптер загружает отсутствующее значение из основного хранилища. Логика cache miss сосредоточена в одном слое.

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

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

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

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

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

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

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

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

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

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

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

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

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

Когда лучше выбрать Kafka, а когда RabbitMQ? В чём принципиальная разница?

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

Читать ответ