В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.
Для простой системы работы с курьерами, которая собирает данные о местоположении и предоставляет их клиентам, можно спроектировать следующие компоненты:
В рамках проектов на Java я самостоятельно проектировал архитектуру модулей и классов, отвечающих за бизнес-логику. Например, я разрабатывал систему обработки заказов, где спроектировал и реализовал:
Для проектирования системы сбора и обработки событий в реальном времени для крупной рекламной сети с указанными параметрами, рассмотрим ключевые аспекты:
Для системы приёма, расшифровки фингерпринтов и агрегации данных с нагрузкой до 3 млн RPS нужно учитывать масштабируемость, отказоустойчивость и низкую задержку.
При проектировании REST и gRPC API для внутренних и внешних сервисов платформы я исходил из разделения ответственности и требований к производительности и удобству интеграции.
Модульный монолит на схеме системного дизайна обычно показывают как единое приложение, разделённое на несколько логических модулей или компонентов внутри одного блока.