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

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

Acing the System Design Interview (short summary)

medium

Книга Zhiyong Tan полезна не тем, что предлагает еще один универсальный шаблон ответа, а тем, что учит разбирать system design задачу как инженерную ситуацию с контекстом, уточняющими вопросами и осознанным выбором глубины. Эта глава как раз показывает эту более методичную сторону материала.

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

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

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

Метод декомпозиции

Помогает разбивать задачу на проверяемые слои: API, storage, async flows, failure handling.

Контроль глубины

Учит выбирать, какие части углублять в зависимости от сигнала интервьюера и тайминга.

Risk-first взгляд

Делает явными точки отказа и операционные риски до финализации архитектуры.

Коммуникация решений

Улучшает ясность ответа: assumptions, ограничения, выбор и план эволюции.

Разбор книги

Review: Acing the System Design Interview

Подробный разбор книги от Alexander Polomodov в блоге Code of Architecture

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

Acing the System Design Interview (System Design: пережить интервью)

Авторы: Zhiyong Tan
Издательство: Manning Publications
Объём: 472 страниц

Разбор книги Zhiyong Tan: методология проектирования, distributed transactions и common services.

Оригинал
Перевод

Книга "Acing the System Design Interview" от Zhiyong Tan — это практичная альтернатива популярным материалам по System Design. Автор, engineering manager в PayPal с опытом работы в Uber и Teradata, предлагает структурированный подход к подготовке, который мне показался даже более полезным, чем книга Alex Xu.

Ключевое отличие

В отличие от Alex Xu, который фокусируется на разборе конкретных систем, Zhiyong Tan уделяет больше внимания процессу проектированияи структуре интервью. Первые 6 глав — это методологическая основа, а не набор готовых решений.

Об авторе

Zhiyong Tan — engineering manager в PayPal. До этого был senior fullstack инженером в Uber, data инженером в стартапах и инженером в Teradata.

Этот разнообразный опыт позволил ему посмотреть на вопросы проектирования систем и найма сотрудников в компаниях разного масштаба и уровня зрелости — от стартапов до enterprise-гигантов.

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

1Часть 1: Введение в System Design Interview (6 глав)

Структурированное введение в процесс проектирования: от базовых концепций до распределённых транзакций. Это методологическое ядро книги.

2Часть 2: Практические задачи (11 кейсов)

Примеры System Design задач с разборами. Классические и нестандартные сценарии для отработки навыков проектирования.

3Приложения

Дополнительные материалы, которые могут быть затронуты на собеседовании:

Монолит vs МикросервисыOAuth 2.0 & OIDCC4 Model2-Phase Commit

Детальный разбор первой части

Первые шесть глав формируют методологическую основу книги. Разберём каждую из них подробно.

1

A Walkthrough of System Design Concepts

В первой главе автор вводит базовые понятия System Design и объясняет главную идею: System Design — это про дискуссию вокруг компромиссов, на которые надо пойти при проектировании решения.

Рассматриваемые темы:

Масштабирование сервисов
GeoDNS и глобальное распределение
Кеширование и CDN
Горизонтальное vs вертикальное масштабирование
ETL и аналитические данные
Bare metal vs Cloud vs FaaS
2

A Typical System Design Interview Flow

Вторая глава посвящена структуре интервью и важному разделению требований:

Functional Requirements

Что система должна делать: features, use cases, user stories

Non-Functional Requirements

Как система должна работать: performance, scalability, reliability

Также рассматриваются: спецификация API, моделирование данных и высокоуровневая архитектура.

3

Non-Functional Requirements

Третья глава глубоко погружается в нефункциональные требования — так называемые "-ilities":

Scalability

Способность расти с нагрузкой

Availability

Доступность 99.9%+

Reliability

Корректность работы

Maintainability

Простота поддержки

Performance

Latency и throughput

Security

Защита данных

4

Scaling Databases

Четвёртая глава фокусируется на масштабировании баз данных — одной из ключевых тем любого System Design интервью.

Ключевые техники:

Replication

Master-slave, multi-master репликация

Sharding

Горизонтальное разделение данных

Event Aggregation

Агрегация событий для аналитики

Caching Strategies

Read-through, write-through, write-behind

5

Distributed Transactions

Пятая глава — одна из самых ценных. Она посвящена сложной теме распределённых транзакций, которую редко хорошо освещают в других книгах.

Рассматриваемые паттерны:

Event-Driven Architecture

Асинхронное взаимодействие через события

Change Data Capture (CDC)

Захват изменений из БД

Saga Pattern

Компенсирующие транзакции

Transaction Supervisor

Координация распределённых операций

6

Common Services

Шестая глава разбирает общие сервисы, которые встречаются практически в каждой системе:

Authentication

JWT, Sessions, OAuth

Error Handling

Retry, Circuit Breaker

Rate Limiting

Token Bucket, Leaky Bucket

Service Mesh

Istio, Linkerd, Sidecars

API Protocols

REST, RPC, GraphQL

Logging & Monitoring

Observability stack

Часть 2: Практические задачи (главы 7-17)

В книге 11 практических кейсов. Ниже полный список задач в том порядке, в котором они идут у автора.

7

Design URL Shortener

URL Shortener

API, short ID strategy, редиректы, anti-abuse и масштабирование.

Открыть кейс

Фокус: Короткие ссылки для share/use-cases, редиректы и защита от коллизий.

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

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

  • Какой read/write ratio и SLA на редирект?
  • Нужны ли кастомные alias, TTL и удаление ссылок?
  • Нужна ли статистика кликов в near-realtime?

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

  • ID generation (counter/snowflake/hash) + стратегия коллизий.
  • Кэширование hot links и edge/CDN для минимальной latency.
  • Anti-abuse: rate limiting, blacklist и валидация URL.

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

  • Перебор коротких ID (enumeration).
  • Hot keys для вирусных ссылок.
8

Design Key-Value Database

Key-Value Database

Шардирование, репликация, quorum и восстановление после отказов.

Открыть кейс

Фокус: Базовый storage-движок с чтением/записью под высокую нагрузку.

Продуктовый сценарий: внутренний платформенный сервис хранения простых структур данных для других команд.

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

  • Какая модель консистентности нужна для чтения?
  • Какие размеры value и лимиты по ключам?
  • Нужны ли multi-region, backup/restore и TTL?

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

  • Репликация + quorum read/write для балансировки latency и consistency.
  • Шардирование и rebalancing без длительного downtime.
  • LSM/B-tree, compaction и стратегия борьбы с write amplification.

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

  • Hot partitions при неудачном key design.
  • Долгие восстановление и re-sync после сбоев.
9

Design Distributed Message Queue

Distributed Message Queue

Partitioned log, delivery semantics, retry/DLQ и управление lag.

Открыть кейс

Фокус: Надежная асинхронная шина для сервисов и фоновых задач.

Продуктовый сценарий: decoupling между сервисами, burst-обработка и гарантии доставки для критичных событий.

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

  • Нужны at-most-once, at-least-once или effectively-once semantics?
  • Важен ли strict ordering глобально или в рамках partition?
  • Какие требования к задержке и retention?

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

  • Partitioning + consumer groups для горизонтального масштабирования.
  • Retry policy, DLQ и idempotent consumers.
  • Backpressure + flow control при всплесках нагрузки.

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

  • Poison messages, которые ломают консьюмера.
  • Unbounded lag при медленных consumers.
10

Design Social Media App

Twitter/X

Social feed: fanout стратегии, кеши и работа с высокой нагрузкой.

Открыть кейс

Фокус: Лента и социальные взаимодействия для массового B2C-продукта.

Продуктовый сценарий: публикация контента, подписки, персональная лента и реакция на viral traffic.

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

  • Какие основные действия: post, follow, like, comment?
  • Какой таргет по DAU и p95 latency на открытие ленты?
  • Нужна ли персонализация/ранжирование на первом этапе?

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

  • Feed delivery: fanout-on-write vs fanout-on-read vs hybrid.
  • Многоуровневый cache: timeline, object, metadata.
  • Async pipeline для media processing и counters.

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

  • Celebrity problem (взрыв fanout).
  • Cache inconsistency между feed и source of truth.
11

Design Ad Click Event Aggregator

Ad Click Event Aggregator

Streaming pipeline для агрегатов, freshness и billing accuracy.

Открыть кейс

Фокус: Пайплайн аналитики кликов для отчетов и биллинга.

Продуктовый сценарий: агрегация рекламных событий в near-realtime с контролем качества данных.

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

  • Какой горизонт обновления: realtime dashboard или hourly batch?
  • Какая точность нужна для биллинга?
  • Как обрабатывать out-of-order и late events?

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

  • Event ingestion + deduplication по idempotency key.
  • Windowed aggregations и watermark strategy.
  • Lambda/Kappa подход для совместимости realtime + historical пересчётов.

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

  • Double counting при retry.
  • Data drift между online и offline расчетами.
12

Design Object Storage Service

Object Storage

Архитектура object storage, metadata/data split и durability-механизмы.

Открыть кейс

Фокус: Хранилище больших объектов для медиа, бэкапов и артефактов.

Продуктовый сценарий: дешёвое и durable storage с простым API и политиками жизненного цикла.

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

  • Какой target по durability/availability (например, 11 девяток)?
  • Какие типовые размеры объектов и профиль чтений/записей?
  • Нужны versioning, lifecycle policies и tiering?

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

  • Metadata/data separation и независимое масштабирование слоёв.
  • Erasure coding/replication + background repair.
  • Multipart upload, checksum verification и pre-signed URLs.

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

  • Metadata bottleneck при росте namespace.
  • Expensive cross-region replication.
13

Design Online Payment App

Payment System

Idempotency, auth/capture/refund, оркестрация платежей и reconciliation.

Открыть кейс

Фокус: Платежный контур с сильными гарантиями корректности.

Продуктовый сценарий: money movement, где цена ошибки выше цены latency, и нужен строгий аудит.

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

  • Какой flow: auth/capture, refund, chargeback?
  • Какие требования по compliance и auditability?
  • Как обрабатываются duplicate requests и partial failures?

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

  • Idempotency keys + state machine транзакций.
  • Double-entry ledger как source of truth.
  • Reconciliation с внешними PSP и компенсирующие операции.

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

  • Дубли списаний при retry.
  • Расхождения между внутренним ledger и PSP.
14

Design Social Media App (Infrastructure View)

Social Media Infrastructure View

SLO-driven контур social платформы: деградация, изоляция и observability.

Открыть кейс

Фокус: Тот же social-домен, но с фокусом на платформенный контур.

Продуктовый сценарий: переход от функциональной схемы к эксплуатационной архитектуре и SLO-driven управлению.

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

  • Какие SLO и error budget у ключевых user-journey?
  • Где нужны авто-скейлинг и graceful degradation?
  • Какие границы blast radius между сервисами?

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

  • Сервисные границы + API contracts и versioning.
  • Observability baseline: logs/metrics/traces + alert routing.
  • Deployment topology: multi-AZ, rollout strategy, rollback.

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

  • Cascading failures без bulkhead/circuit breaker.
  • Непрозрачные инциденты без end-to-end tracing.
15

Design Room Reservation and Marketplace App

Airbnb

Двухсторонний marketplace, поиск, availability calendar и конкуренция за слоты.

Открыть кейс

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

Продуктовый сценарий: поиск вариантов и атомарное бронирование ресурсов в условиях race conditions.

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

  • Какие правила hold/booking/cancel и SLA подтверждения?
  • Сколько параллельных попыток на один слот ожидается?
  • Как формируется поисковая выдача (фильтры, сортировка, geo)?

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

  • Inventory model + optimistic/pessimistic locking strategy.
  • Reservation workflow с timeout на hold.
  • Search index + eventual consistency с transactional store.

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

  • Overbooking при гонках.
  • Плохой UX из-за долгих подтверждений.
16

Design Access Control and Authorization for Media App

Access Control for Media App

RBAC/ABAC/ReBAC, PDP/PEP, audit trail и безопасная инвалидация кеша.

Открыть кейс

Фокус: Authorization слой для медиаплатформы с разными ролями и правами.

Продуктовый сценарий: единая policy-модель для web/mobile/admin с соблюдением least privilege.

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

  • Какие роли и ресурсы критичны на старте?
  • Нужны RBAC только или гибрид RBAC + ABAC/ReBAC?
  • Нужны ли explain/audit API для расследований?

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

  • Policy decision point и policy enforcement point на запросах.
  • Кэширование policy решений с корректной инвалидацией.
  • Tenant isolation и immutable audit trail.

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

  • Privilege escalation из-за неявных правил.
  • Stale policy cache после обновлений прав.
17

Design Top Products Dashboard

Top Products Dashboard

Аналитическая витрина: pre-aggregations, consistency метрик и data freshness.

Открыть кейс

Фокус: BI-дэшборд топ-продуктов для операционных и продуктовых команд.

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

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

  • Какая целевая частота обновления и допустимая задержка?
  • Какие dimensions и фильтры нужны бизнесу?
  • Нужна ли drill-down аналитика до сырых событий?

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

  • Отдельный serving layer под dashboard workloads.
  • Pre-aggregations/materialized views для p95 latency.
  • Комбинация realtime stream + scheduled backfill.

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

  • Heavy ad-hoc queries бьют production OLTP.
  • Непонимание freshness и расхождение цифр между витринами.

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

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

Тем, кто хочет понять "почему" — книга даёт методологическую основу, а не просто набор готовых решений.

Инженерам с опытом — глубокий разбор distributed transactions и common services будет особенно полезен.

Для долгосрочной подготовки — книга формирует системное понимание архитектуры, а не поверхностные знания.

Рекомендация: Используйте эту книгу как основной источник для понимания процесса и методологии, а книгу Alex Xu — как справочник по конкретным системам.

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

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

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