Расширение архитектуры: поддержка источников помимо файлов
Можно добавить адаптер сетевого или другого хранилища, реализующий IConnection и IFile. Это сработает только при сохранении смысла операций подключения, чтения и записи.
Читать ответПодготовка к интервью
889 вопросов по System Design
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.
Каталог
Можно добавить адаптер сетевого или другого хранилища, реализующий IConnection и IFile. Это сработает только при сохранении смысла операций подключения, чтения и записи.
Читать ответСначала нужно определить правила совместимости скидок: складываются ли они, применяются последовательно или выбирается лучшая. Без этого и параметров скидки на заказ единственной итоговой цены нет.
Читать ответРазбейте файл на части, передавайте с возможностью продолжения и проверяйте целостность. После обрыва нужно повторять недостающие части, а не весь файл.
Читать ответВместо единственного статического адреса используйте доступный пул узлов с проверкой состояния, ограниченными повторами и идемпотентными пакетами. Равное число сборщиков не гарантирует равный поток данных.
Читать ответРазделите Kotlin SDK на публичный API, локальное состояние и синхронизацию с сервером. Начисление достижений делайте идемпотентным и привязанным к игроку.
Читать ответМетаданные аудиокниг храните в БД, аудио — в объектном хранилище, а раздачу выполняйте через CDN. API управляет каталогом, доступом и прогрессом прослушивания.
Читать ответХраните документ как структурированные узлы и операции, а совместное редактирование стройте на CRDT или OT. Для офлайн-режима удобен CRDT с локальным журналом изменений.
Читать ответВыделите репозиторий чатов и ViewModel списка. Экран отображает состояния загрузки, данных и ошибки, а при выборе строки открывает диалог по chatId.
Читать ответРазделите публикации, ленту, подписки, медиа и поиск. Для ленты используйте гибридную доставку: обычные авторы — fan-out при записи, крупные — при чтении.
Читать ответОсновные сценарии — смена статуса водителя, получение и принятие заказа, маршрут, этапы поездки и завершение расчёта. Сервер должен оставаться источником истины для назначения заказа и оплаты.
Читать ответРазделите объявления, поиск, пользователей, медиа, чат и модерацию. Для международной системы заранее определите региональное владение данными, согласованность и требования к доступности.
Читать ответПостройте поиск как цепочку «ввод → задержка → отменяемый API-запрос → список результатов». Изображения и видео имеют разные endpoints и структуры ответа.
Читать ответ