Книга 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Приложения
Дополнительные материалы, которые могут быть затронуты на собеседовании:
Детальный разбор первой части
Первые шесть глав формируют методологическую основу книги. Разберём каждую из них подробно.
A Walkthrough of System Design Concepts
В первой главе автор вводит базовые понятия System Design и объясняет главную идею: System Design — это про дискуссию вокруг компромиссов, на которые надо пойти при проектировании решения.
Рассматриваемые темы:
A Typical System Design Interview Flow
Вторая глава посвящена структуре интервью и важному разделению требований:
Functional Requirements
Что система должна делать: features, use cases, user stories
Non-Functional Requirements
Как система должна работать: performance, scalability, reliability
Также рассматриваются: спецификация API, моделирование данных и высокоуровневая архитектура.
Non-Functional Requirements
Третья глава глубоко погружается в нефункциональные требования — так называемые "-ilities":
Scalability
Способность расти с нагрузкой
Availability
Доступность 99.9%+
Reliability
Корректность работы
Maintainability
Простота поддержки
Performance
Latency и throughput
Security
Защита данных
Scaling Databases
Четвёртая глава фокусируется на масштабировании баз данных — одной из ключевых тем любого System Design интервью.
Ключевые техники:
Replication
Master-slave, multi-master репликация
Sharding
Горизонтальное разделение данных
Event Aggregation
Агрегация событий для аналитики
Caching Strategies
Read-through, write-through, write-behind
Distributed Transactions
Пятая глава — одна из самых ценных. Она посвящена сложной теме распределённых транзакций, которую редко хорошо освещают в других книгах.
Рассматриваемые паттерны:
Event-Driven Architecture
Асинхронное взаимодействие через события
Change Data Capture (CDC)
Захват изменений из БД
Saga Pattern
Компенсирующие транзакции
Transaction Supervisor
Координация распределённых операций
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 практических кейсов. Ниже полный список задач в том порядке, в котором они идут у автора.
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 для вирусных ссылок.
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 после сбоев.
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.
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.
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 расчетами.
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.
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.
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.
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 из-за долгих подтверждений.
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 после обновлений прав.
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 — как справочник по конкретным системам.
Связанные главы
- Зачем читать книги по System Design Interview - Вводная карта раздела и место книги Zhiyong Tan в общем треке подготовки.
- System Design Interview: An Insider's Guide (short summary) - Книга-компаньон с более коротким walkthrough классических interview-кейсов.
- Hacking the System Design Interview (short summary) - Альтернативный framework и набор задач для дополнительной практики интервью.
- System Design Primer (short summary) - Checklist-ориентированный источник для ежедневного повторения базовых паттернов.
- Distributed Message Queue - Практический кейс из книги: partitioning, delivery semantics и контроль consumer lag.
- Top Products Dashboard - Аналитический кейс из книги: freshness KPI, serving слой и reconcile контуры.
- Social Media Infrastructure View - SLO-driven взгляд на social платформу, fault isolation и деградационные стратегии.
- Access Control for Media App - Практика проектирования policy engine, authz-проверок и audit trail под нагрузкой.
