System Design Space
Граф знанийНастройки

Обновлено: 23 марта 2026 г. в 22:05

Hacking the System Design Interview (short summary)

medium

Книга Stanley Chiang сильна не тем, что обещает “взломать” interview магическим приемом, а тем, что собирает подготовку в очень практичный маршрут: базовые концепции, типовые компоненты, 7-шаговый подход и большой набор задач. Эта глава как раз показывает, почему материал ощущается более прикладным и систематизированным.

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

Для подготовки к интервью эта глава особенно ценна тем, что переводит теорию в режим повторяемой тренировки: 7 шагов дают устойчивый ритм ответа, а 16 практических кейсов позволяют проверять, где разваливается структура, где не хватает базы и какие deep dives еще не держатся уверенно.

Практическая польза главы

Каркас интервью

Дает дисциплину прохождения кейса под давлением времени и переключений контекста.

Сравнение альтернатив

Учит держать 2-3 варианта на критичные узлы и аргументированно выбирать один.

Операционный минимум

Подсвечивает необходимость observability, degradation-стратегий и rollback сценариев.

Репетиция формата

Помогает перевести теорию в повторяемый mock-режим с измеримым прогрессом.

Источник

Оригинальная статья

Обзор книги Hacking the System Design Interview в блоге Code of Architecture

Перейти на сайт

Hacking the System Design Interview

Авторы: Stanley Chiang
Издательство: Independently published, 2022
Объём:

Разбор книги Stanley Chiang: 7-шаговый фреймворк, 16 практических задач и сравнение с другими материалами.

Оригинал

Личное мнение

Эта книга показалась мне интереснее, чем "System Design Interview" от Alex Xu. Структура изложения базовых концепций здесь более понятная и систематизированная.

Связанная глава

Зачем читать книги по System Design Interview

Карта источников: как комбинировать книги, курсы и практические кейсы в единый план подготовки.

Открыть главу

Структура книги

Книга состоит из введения, в котором автор рассказывает общие слова про system design interview, а также трёх основных частей:

1. The System Design Interview

Краткое интро про этот тип интервью и про то, как использовать книгу для подготовки к нему.

2. Essential Concepts

Базовая терминология и фундаментальные принципы для дизайна сервисов:

Концепции из баз данных
Основы сетей
Интеграция сервисов
Распределённые системы
Принципы тестирования

3. Core Components

Базовые компоненты современных систем:

Веб-серверыКешиОбъектные хранилищаCDNRead/Write APIFan-out servicesГенерация уникальных IDBig DataMapReduce

4. System Design Questions

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

Связанная глава

Фреймворки прохождения интервью

Дополнительные структуры ответа на System Design Interview и практики тайм-менеджмента.

Открыть главу

7-шаговый подход к System Design

Фреймворк, который предлагает автор, состоит из семи последовательных шагов. Давайте разберём каждый из них подробно.

1

Понимание задачи и определение границ

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

Ключевые вопросы:

  • Какие основные use cases должна поддерживать система?
  • Каковы ожидаемые нагрузки (пользователи, запросы в секунду)?
  • Какие есть ограничения по времени/бюджету?
2

Определение модели данных

На втором этапе нужно определиться какими сообщениями обмениваются элементы системы и какие данные хранятся в системе.

Сообщения (Messages)

Форматы обмена данными между компонентами системы

Хранилище (Storage)

Схема данных и выбор типа хранилища

3

Высокоуровневая оценка нагрузки

Проводим Back of the Envelope Estimation — прикидываем порядки величин для основных метрик системы.

Что оцениваем:

  • Количество пользователей (DAU/MAU)
  • Количество запросов в секунду (QPS)
  • Объём хранимых данных
  • Пропускная способность сети
4

Высокоуровневый дизайн

После определения основных требований и характеристик строим высокоуровневую архитектуру и согласовываем её с интервьюером. Это критически важный момент!

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

5

Детальный дизайн

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

На что обратить внимание:

  • Детали реализации ключевых компонентов
  • Алгоритмы и структуры данных
  • Обработка edge cases
  • Выбор конкретных технологий
6

Спецификация API и интерфейсов

Определяем публичные API системы и интерфейсы взаимодействия между компонентами.

Внешние API

REST, GraphQL, gRPC эндпоинты для клиентов

Внутренние интерфейсы

Контракты между микросервисами

7

Обсуждение узких мест и производительности

Финальный этап — обсуждение потенциальных проблем и способов их решения.

Темы для обсуждения:

  • Bottlenecks и способы их устранения
  • Single points of failure
  • Масштабирование под рост нагрузки
  • Мониторинг и alerting

16 практических задач

Ниже полный список задач в формате interview-playbook: для каждой задачи выделены фокус, вопросы на уточнение, архитектурные решения и типичные риски.

1

Design URL Shortener

URL Shortener

Практический кейс: short ID strategy, redirect path и anti-abuse.

Открыть кейс

Фокус: Короткие ссылки, быстрые редиректы и борьба с коллизиями.

Сервис должен стабильно обрабатывать большой read-heavy трафик и сохранять предсказуемую latency на редирект.

Что уточнить на интервью

  • Какой read/write ratio и целевой p95 latency на redirect?
  • Нужны ли кастомные alias, TTL, delete/disable ссылок?
  • Есть ли требования к аналитике кликов в near-realtime?

Архитектурный фокус

  • ID generation strategy + контроль коллизий.
  • Кэш hot links и CDN/edge для ускорения redirects.
  • Anti-abuse слой: rate limiting, валидация URL, blacklist.

Типичные риски

  • Enumeration атакуют предсказуемые short ID.
  • Hot keys на вирусных ссылках.
2

Design Chat System

Chat System

Практический кейс: transport, delivery semantics и presence.

Открыть кейс

Фокус: Realtime обмен сообщениями, presence и доставка в офлайне.

Чат должен поддерживать p2p и групповые диалоги при стабильной доставке сообщений и синхронизации между устройствами.

Что уточнить на интервью

  • Нужны ли message ordering guarantees в чатах?
  • Какие требования к online presence и typing indicators?
  • Нужны ли read receipts, media attachments, message history sync?

Архитектурный фокус

  • WebSocket/gRPC streams для realtime канала.
  • Message queue + async delivery workers + push fallback.
  • Хранение истории и sync-процессы между devices.

Типичные риски

  • Stateful соединения усложняют масштабирование.
  • Потеря сообщений при failover без durable queue.
3

Design Search Autocomplete

Search System

Кейс из темы 3: indexing, retrieval и latency-бюджет поиска.

Открыть кейс

Фокус: Подсказки в поиске с минимальной задержкой.

Система должна выдавать релевантные подсказки на каждый символ ввода и выдерживать всплески поисковых запросов.

Что уточнить на интервью

  • Нужна ли персонализация подсказок или глобальный top-k?
  • Как часто обновляется модель частотности запросов?
  • Какой набор языков/локалей поддерживается?

Архитектурный фокус

  • Trie/DAWG структура + precomputed top-k по префиксам.
  • Поток обновлений запросов через batch/stream pipeline.
  • Кэширование hot prefixes на edge/прикладном уровне.

Типичные риски

  • Heavy write pipeline приводит к stale suggestions.
  • Неравномерные hot prefixes создают перегрузку.
4

Design News Feed

Twitter/X

Практический кейс social feed: fan-out и кэширование.

Открыть кейс

Фокус: Лента контента с fan-out стратегиями.

Фид должен корректно обновляться при высокой активности пользователей и поддерживать персонализацию/ранжирование.

Что уточнить на интервью

  • Какой SLA на открытие ленты и публикацию поста?
  • Нужна ли строгая хронология или ranking-first лента?
  • Какие лимиты по подпискам и активности у heavy users?

Архитектурный фокус

  • Fanout-on-write / fanout-on-read / hybrid strategy.
  • Timeline cache + object cache + counters pipeline.
  • Async processing для media и engagement signals.

Типичные риски

  • Celebrity fan-out перегружает write path.
  • Дрейф между source of truth и cached timeline.
5

Design Web Crawler

Web Crawler

Кейс из темы 3: frontier, deduplication и politeness.

Открыть кейс

Фокус: Масштабный обход web-графа с контролем качества.

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

Что уточнить на интервью

  • Какой объём crawl/day и требуемая свежесть индекса?
  • Какие типы контента/файлов нужно извлекать?
  • Нужны ли ограничения robots.txt / rate limits per domain?

Архитектурный фокус

  • URL frontier с приоритезацией и politeness policy.
  • Fetcher workers + deduplication + canonicalization.
  • Pipeline парсинга, extraction и enqueue новых URL.

Типичные риски

  • Crawler traps и бесконечные графы ссылок.
  • Слишком агрессивный crawl приводит к blocking.
6

Design Rate Limiter

Rate Limiter

Кейс из темы 3: алгоритмы лимитирования и distributed counters.

Открыть кейс

Фокус: Контроль трафика и защита API от перегрузки.

Rate limiter должен работать как инфраструктурный компонент для разных сервисов и корректно выдерживать burst нагрузку.

Что уточнить на интервью

  • Какие лимиты: per-user, per-IP, per-token, global?
  • Какие алгоритмы важнее: точность или простота/скорость?
  • Нужна ли распределённая консистентность счётчиков?

Архитектурный фокус

  • Token Bucket/Sliding Window в зависимости от use case.
  • Distributed counters с TTL и защитой от race conditions.
  • Интеграция в API gateway и observability metrics.

Типичные риски

  • Clock drift и race дают ложные лимиты.
  • Single storage hotspot для глобальных лимитов.
7

Design Notification System

Notification System

Практический кейс: multi-channel delivery и retry/DLQ.

Открыть кейс

Фокус: Push/SMS/email уведомления в больших объёмах.

Многоканальная система должна балансировать скорость доставки, надёжность и ограничение стоимости каналов.

Что уточнить на интервью

  • Какие каналы обязательны на старте?
  • Какие SLO по задержке и доставке на каждый канал?
  • Нужны ли шаблоны, локализация, preference center?

Архитектурный фокус

  • Channel-specific queues и workers.
  • Retry policy + dead-letter queue + deduplication.
  • Delivery status tracking и аналитика каналов.

Типичные риски

  • Дубли отправок при retries.
  • Vendor outage без fallback-провайдера.
8

Design Video Streaming Platform

Video Hosting

Кейс из темы 3: upload pipeline, transcoding и CDN delivery.

Открыть кейс

Фокус: Загрузка, транскодирование и доставка видео.

Платформа должна обрабатывать media pipeline end-to-end: от upload до playback с разными битрейтами и регионами.

Что уточнить на интервью

  • Какие целевые форматы/разрешения и supported devices?
  • Какой expected traffic profile (live vs VOD)?
  • Нужны ли DRM, geo-restrictions и adaptive bitrate?

Архитектурный фокус

  • Ingestion + transcoding pipeline + object storage.
  • CDN distribution + caching strategy по регионам.
  • Metadata service + recommendation/feed integration.

Типичные риски

  • Transcoding pipeline становится bottleneck.
  • Высокая стоимость egress и storage tiering.
9

Design Proximity Service

Google Maps Proximity

Практический кейс геопоиска: spatial index и ranking.

Открыть кейс

Фокус: Поиск ближайших объектов по геолокации.

Сервис должен отвечать быстро на spatial queries и корректно работать с geospatial индексацией и обновлениями.

Что уточнить на интервью

  • Какой радиус поиска и точность геоданных нужна?
  • Нужны ли geo-filters и ranking по distance + relevance?
  • Как часто обновляются координаты объектов?

Архитектурный фокус

  • Geohash/S2/H3 индекс для spatial partitioning.
  • Read-optimized geo storage + cache hot regions.
  • Сервис ранжирования результатов по distance/relevance.

Типичные риски

  • Hot city regions создают перекос нагрузки.
  • Неправильная геоиндексация ухудшает качество выдачи.
10

Design Ride Sharing

Uber

Кейс из темы 3: geo-matching, trip workflow и scaling.

Открыть кейс

Фокус: Матчинг водителей и пассажиров в realtime.

Система должна в режиме near-realtime находить оптимального водителя и поддерживать live-трекинг поездки.

Что уточнить на интервью

  • Какие SLA на matching и обновление ETA?
  • Как учитывать surge pricing и traffic conditions?
  • Нужны ли multi-hop trip states и incident handling?

Архитектурный фокус

  • Driver location ingestion + geo-index matching service.
  • Trip state machine + event bus для workflow.
  • Pricing service + route optimization integration.

Типичные риски

  • Скачки GPS/telemetry ломают matching.
  • Surge/promo конфликтуют в биллинге.
11

Design Ticketing System

Ticket Booking

Кейс из темы 3: конкуренция за слоты и атомарное бронирование.

Открыть кейс

Фокус: Продажа билетов под высокой конкуренцией пользователей.

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

Что уточнить на интервью

  • Какой hold timeout и подтверждение оплаты?
  • Какие anti-bot механики обязательны?
  • Нужен ли waiting room при пиковых продажах?

Архитектурный фокус

  • Reservation service с блокировкой inventory.
  • Queue/virtual waiting room для сглаживания наплыва.
  • Payment integration + idempotent booking flow.

Типичные риски

  • Overselling из-за race conditions.
  • Bot traffic выбивает легальных пользователей.
12

Design Hotel Reservation System

Hotel Booking

Практический кейс: availability model, booking flow и конкурентный доступ.

Открыть кейс

Фокус: Инвентарь номеров, availability и бронирование.

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

Что уточнить на интервью

  • Как строятся правила отмены/изменения брони?
  • Какие требования к atomic booking и hold room?
  • Нужна ли интеграция с внешними channel managers?

Архитектурный фокус

  • Availability calendar + inventory management service.
  • Search index с eventual consistency от transactional store.
  • Booking workflow + payment + confirmation events.

Типичные риски

  • Overbooking при параллельных запросах.
  • Рассинхрон availability между каналами продаж.
13

Design Distributed File System

Distributed File System

Кейс из темы 3: metadata/data split, replication и recovery.

Открыть кейс

Фокус: Распределённое хранение файлов с репликацией.

Система должна обеспечивать надёжное хранение больших файлов и высокую пропускную способность чтения/записи.

Что уточнить на интервью

  • Какие требования к durability/availability?
  • Какие размеры блоков и replication factor оптимальны?
  • Нужны ли consistency guarantees на уровне read/write?

Архитектурный фокус

  • Metadata node + data nodes + block placement.
  • Replication strategy и re-replication после отказов.
  • Read/write path optimization и checksum verification.

Типичные риски

  • Metadata node становится SPOF/bottleneck.
  • Длительное восстановление после массового отказа.
14

Design Distributed Key-Value Store

Key-Value Database

Кейс из темы 3: partitioning, replication, quorum и anti-entropy.

Открыть кейс

Фокус: Low-latency распределённое KV-хранилище.

KV storage используется как фундаментальный building block для других сервисов и должен масштабироваться горизонтально.

Что уточнить на интервью

  • Какая модель консистентности нужна: strong/eventual/tunable?
  • Какой профиль нагрузок read/write и размеры values?
  • Нужны ли TTL, backup/restore, multi-region replication?

Архитектурный фокус

  • Partitioning + replication + quorum operations.
  • Storage engine decisions (LSM/B-tree) и compaction.
  • Failure detection и anti-entropy механизмы.

Типичные риски

  • Hot partitions из-за неудачных ключей.
  • Write amplification и latency spikes на compaction.
15

Design Interplanetary Distributed Computing System

Interplanetary Distributed Computing

Кейс из темы 3: delay-tolerant сеть, store-and-forward и автономные узлы.

Открыть кейс

Фокус: Архитектура при экстремальной latency и ограниченной связи.

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

Что уточнить на интервью

  • Какой latency budget между узлами (земля/орбита/планеты)?
  • Какие данные критичны для eventual sync?
  • Как проектировать деградацию при полном разрыве связи?

Архитектурный фокус

  • Store-and-forward коммуникации и delay-tolerant networking.
  • Eventual consistency с конфликт-резолюцией на уровне домена.
  • Локальная автономность узлов и пакетная синхронизация.

Типичные риски

  • Долгие сети ломают синхронные протоколы.
  • Конфликты данных копятся при длительном offline.
16

Design Real-time Gaming Leaderboard

Real-time Gaming

Кейс из темы 3: leaderboard, realtime updates и ranking queries.

Открыть кейс

Фокус: Обновление рейтинга игроков в realtime.

Leaderboard должен быстро обновляться, корректно ранжировать миллионы игроков и поддерживать региональные/глобальные таблицы.

Что уточнить на интервью

  • Нужен глобальный leaderboard или per-region/per-season?
  • Какая допустимая задержка обновления ранга?
  • Нужны ли anti-cheat сигналы в scoring pipeline?

Архитектурный фокус

  • In-memory ranking store (sorted sets) + periodic persistence.
  • Event-driven score updates и batch reconciliation.
  • Read API для top-N и around-me запросов.

Типичные риски

  • Skewed writes на популярных игроков.
  • Несогласованность realtime и persisted rankings.

Особенно интересная задача

Interplanetary Distributed Computing System тренирует мышление для extreme-case сетей: очень большие задержки, редкая синхронизация и необходимость автономной работы узлов.

Связанная глава

System Design Primer (short summary)

Шпаргалки по базовым паттернам, оценкам и кейсам для ежедневной практики.

Открыть обзор

Выводы и рекомендации

Кому подойдёт эта книга?

Начинающим — хорошая структура базовых концепций поможет систематизировать знания.

Опытным инженерам — уникальные задачи вроде "Interplanetary System" дадут новый взгляд на знакомые концепции.

Как дополнение — книга отлично работает в связке с другими материалами по System Design.

Рекомендую использовать эту книгу как один из источников при подготовке, комбинируя её с "System Design Interview" от Alex Xu и репозиториемsystem-design-primer.

Связанные главы

Где найти книгу

Чтобы отмечать прохождение, включи трекинг в Настройки