# Подготовка к секции системного дизайна (Yandex Codenv, этап 2)

Этап 1 (алгоритмы) пройден → назначена архитектурная секция: крупноблочная схема сервиса (инстаграм/твиттер), отказоустойчивость. Слоты: **пт 18.09 15:30** / **пн 21.09 15:00** / **вт 22.09 18:00–19:00** (какой возьмём — решает пользователь). Трек задач: **TASK-45** (+ сабтаски 45.1–45.10).

## Состав папки

| Файл | Что это | Задача |
|------|---------|--------|
| [`knowledge-base.md`](knowledge-base.md) | База знаний: числа (степени двойки, latency), back-of-envelope с примерами, классы хранилищ, кэш, репликация, шардирование, консистентность, очереди, отказоустойчивость, эксплуатация, шпаргалка «что назвать на секции», карта DDIA | TASK-45.1 ✅ |
| [`methodology.md`](methodology.md) | Методичка: 6 этапов секции с таймингом, фреймворк ответа по этапам, чек-лист речевых паттернов, топ-10 ошибок, план подготовки под слоты (А/Б/В), протокол само-тренировки (эталоны → каты §6.5 → моки §6.3–6.4) | TASK-45.2 ✅ |
| [`classic-designs.md`](classic-designs.md) | Эталонные разборы по 6 этапам: URL shortener (эталон Яндекса из статьи), лента новостей (Instagram/Twitter), мессенджер, медиа-хостинг | TASK-45.3 ✅ |
| [`brief.md`](brief.md) | Бриф: 12 разделов знаний с критериями «умею, если» и источниками — основа серии учебных статей | составлен при постановке 45.40–45.52 |
| `articles/` | Учебные статьи верхнего уровня: обзорная `00` + по разделу брифа `01–12` (10–20 мин каждая) | TASK-45.40 ✅ (обзор `articles/00-overview.md`), 45.41 ✅ (`articles/01-interview-framework.md` — фреймворк и требования), 45.42 ✅ (`articles/02-estimations.md` — back-of-envelope, числа, латентность), 45.43 ✅ (`articles/03-scaling.md` — LB, CDN, stateless), 45.44 ✅ (`articles/04-data-models-storage.md` — модели данных и выбор хранилища), 45.45 ✅ (`articles/05-replication-sharding.md` — репликация и шардирование), 45.46 ✅ (`articles/06-caching.md` — кэширование), 45.47 ✅ (`articles/07-queues-streams.md` — очереди и потоки), 45.48 ✅ (`articles/08-fault-tolerance.md` — отказоустойчивость и надёжность), 45.49 ✅ (`articles/09-consistency.md` — согласованность и распределённые транзакции), 45.50 ✅ (`articles/10-components-patterns.md` — прикладные компоненты: API, rate limiter, snowflake, real-time транспорт, краулер, typeahead), 45.51 ✅ (`articles/11-reference-designs.md` — эталонные архитектуры: shortener, лента, мессенджер, медиа), 45.52 ✅ (`articles/12-operations-observability.md` — эксплуатация и наблюдаемость: golden signals, SLO/error budget, rolling/canary/blue-green, shadow traffic, expand/contract, metrics first) — серия 01–12 завершена |
| [`training/`](training/README.md) | Логи раундов само-тренировки и mock-сессий (`round-NN-<дата>/_round.md`), правила и порог готовности | по ходу |
| `materials/` | Конспекты источников от HR: `yandex-564132.md` (45.5 ✅), `sdp-appendix-numbers.md` (45.6 ✅), `sdp-guide.md` (45.7 ✅), `habr-516604.md` (45.8 ✅), `jackson-gabbard-ep06.md` (45.9 ✅), `ddia-map.md` (45.10 ✅) + `learn-system-design-index.md` - индекс подборки learn-system-design с приоритетами под слоты (45.12 ✅; конспекты материалов - задачи 45.11-45.37, из них готово: `lsd-karanpratapsingh-system-design.md` - учебник с разборами shortener/WhatsApp/Twitter/Netflix/Uber и картой уникальных vs SDP тем, 45.13 ✅; `lsd-bregman-notebook.md` - пошаговые карточки + упражнения-эволюции AWS, карта уникальных тем для KB §9/§11/§13, 45.14 ✅; `lsd-bytebytego-blog.md` - индекс блога ByteByteGo (744 поста): топ-5 с выжимками - Instagram scaled (сквозной кейс), GCP outage (отказоустойчивость), FB Memcached (кэш: lease/gutter/mcsqueal), RabbitMQ vs Kafka vs Pulsar (очереди), шардирование + второй эшелон и платная серия, 45.16 ✅; `lsd-bytebytego-youtube.md` - топ-5 видео канала по расшифровкам субтитров, 45.17 ✅; `lsd-newsletter.md` - индекс рассылки System Design Newsletter (Neo Kim, 173 поста): топ-5 с выжимками - Hashnode Feed (лента), WhatsApp (чат), YouTube (медиа VOD), FB Live (медиа live + request coalescing), Hotstar 25M (отказоустойчивость пиковых событий) + второй эшелон по темам (URL BOE, WeChat, Slack, Quora sharding, Vitess, Stripe rate limiting и др.) и карта платного периода, 45.18 ✅; `lsd-architecture-notes.md` - индекс Architecture Notes (Mahdi Yusuf, 20 постов): топ-5 с выжимками - Redis Explained (топологии single/HA/Sentinel/Cluster, hashslot'ы, RDB/AOF, fork+COW), Database Sharding (альтернативы до шардирования, shard key, 3 стратегии, цена 2PC), RDBMS (B+tree, read phenomena × isolation levels), Load Balancers (алгоритмы, L4/L7, strangler), монолит/SOA/микросервисы + второй эшелон и платная серия; подписка не нужна, 45.19 ✅; `lsd-awesome-scalability.md` - индекс awesome-scalability (binhnguyennus, ~700 кейсов): топ-5 под бриф - Instagram Sharding & IDs (ID = время+шард+seq в PL/PGSQL, логические шарды-схемы), TAO (соцграф: 1 млрд чтений/с, leader+follower кэш, critical reads к master), Twitter/Redis (лента как структура на сервере, 105TB/39M QPS, tail latency при fan-out), Netflix Fault Tolerance (30×99.99%=2ч/мес, bulkhead-пулы, circuit breaker 50%/10s, лестница fallback'ов), Brewer (yield/harvest, DQ, n/(n-k), MTTR>MTBF) + второй эшелон, 45.30 ✅; `lsd-interviewready-resources.md` - индекс system-design-resources (InterviewReady, 183 ссылки/38 разделов - «внутренности»: engineering-блоги + академические первоисточники): топ-5 под бриф - The Log (Kreps: лог = время, state machine replication, лог+serving layer), Transactional Outbox (+Sagas: атомарность «запись+событие», идемпотентные консьюмеры), Uber CacheFront 40M RPS (кэш внутри движка БД: cache-aside, CDC-инвалидация, Lua-дедупликация по версии, negative caching, адаптивные таймауты, replicate keys между регионами), LSM-tree (write-heavy: батч в память, rolling merge, платим чтением; противовес B+tree), DNS/GSLB Page of Shame + Shopify (browser DNS cache не видит TTL → HA = мульти-A, «умный GSLB» не работает; TTL-трейдофф) + второй эшелон (DBLog, Gorilla, DB-as-queue, BigTable/Dynamo, horicky, OT, active-active) − 45.31 ✅; `lsd-awesome-distributed-systems.md` — индекс awesome-distributed-systems (theanalyst, 83 ссылки — канон DS: первоисточники, книги, курсы): топ-5 под бриф — Dynamo SOSP'07 (AP-рамка: always-writable корзина, SLA на p99.9 не медиане, (3,2,2), availability ≠ durability), Raft-сайт + The Secret Lives of Data (механика «упал мастер»: термины, выборы, кворум — 30 мин), Hodges «Young Bloods» (частичные отказы, backpressure, partial availability, «ты не Шерлок пока нет метрик», пространство ID), Hamilton LISA'07 (operations-friendly: 2500:1, отказы несколько раз в день на 10K серверов, «выключи любой сервер без дрейна», admission control на всех ярусах, soft delete, трекинг FT-механизмов 2000→400), Dapper (трассировка: trace tree, сэмплирование 1/1024, адаптивное, платформа не инструмент) + второй эшелон (Builders Library, 6.824, mixu, aphyr, Fallacies, Chubby) — 45.32 ✅; `lsd-ashishps1-resources.md` — индекс awesome-system-design-resources (ashishps1/AlgoMaster, ~140 ссылок — «учебник-минимум + задачник»): уникальны свод 15 трейдоффов (словарь развилок), каталог 45 задач Easy/Medium/Hard, 6 engineering-статей и 10 пейперов (Paxos, GFS, MapReduce, Spanner, Chubby, ZooKeeper, Kafka-paper); топ-5 под бриф — Top-15 Tradeoffs (прогон 15 мин перед любым слотом), Discord trillions (хранилище ленты: hot partition, request coalescing + consistent-hash routing, ScyllaDB 177→72 ноды, p99 15ms), Slack real-time (stateful channel servers 16M каналов/хост, GS-регионы с draining, доставка 500ms), Kleppmann distributed locking (efficiency vs correctness, fencing-токены, критика Redlock), Stripe payments APIs (Charges→Sources→PaymentIntents: один state machine, layered migration без ломки клиентов) + второй эшелон (Canva uploads, Spanner, ZooKeeper/Chubby, Kafka-paper, Gossip/Heartbeats/Service Discovery) — 45.33 ✅; `lsd-master-plan.md` — индекс system-design-master-plan (mohsenshafiei, чисто визуальная roadmap 07.2024): восстановлены все 156 узлов карты (60 тем в 16 секциях + 30 задач + мини-фреймворк), сверка с KB/articles — ~95 % покрыто, 5 микро-лакун одной фразой (HLD-vs-LLD, академические характеристики DS, write-around, forward proxy, shapes-of-data); до слотов — 15-минутный прогон как трекер самопроверки, задачник — после секций — 45.34 ✅; `lsd-sd-algorithms.md` — чек-лист 18 алгоритмов resumejob/system-design-algorithms с уровнями владения «know when to use» ☑️ / «know how it works» ✅: сверка с KB — 14/18 уже покрыто, лакуны внесены (sketch-счётчики HLL/Count-Min/lossy → новый KB §14.6, rsync-механика → §14.5, ray casting + S2 → §13.6), frugal streaming оставлен P3; прогон таблицы — самопроверка 15–20 мин — 45.35 ✅); `lsd-kleppmann-lectures.md` — академический курс Martin Kleppmann «Distributed Systems» (Cambridge 2020, 8 разделов × 23 лекции, ~6.5 ч; субтитры всех лекций прочитаны полностью): теоретический фундамент части II DDIA — системные модели (partial-sync + crash-recovery, eventually perfect failure detector), причинность (happens-before, Lamport/vector), иерархия broadcast (reliable→FIFO→causal→total, gossip, holdback), кворумы W+R>N и read repair (ABD: кворумы не линейзуемы), полный Raft (термы, два голосования, Log Matching), 2PC + in-doubt и отказоустойчивый вариант через TOB, лестница допущений 7.3 (atomic commit → consensus/CAS → linearizable get/set → eventual — готовая структура ответа «какая консистентность и чем платим»), CRDT/OT, Spanner TrueTime (MVCC-снапшоты, commit wait ~4 мс); таблица «все 23 лекции → темы → DDIA (1-е/2-е изд.) → KB/бриф» + ядро просмотра ~2 ч под слоты — 45.36 ✅ | TASK-45.5–45.12 ✅, 45.13–45.37 ✅, 45.11 ⏳ |
| `materials/alex-xu-vol1/` | Алекс Сюй, «System Design. Подготовка к сложному интервью» (Vol. 1, рус. изд.): полный текст всех 16 глав + выжимки (`ch-*.md`) и карта переноса `_map.md` — куда что уехало в KB §2.5/§14, methodology (фреймворк гл. 3), classic-designs (сверки гл. 8/11/12/14) | TASK-45.38 ✅ |
| `materials/ddia-2ed/` | DDIA **2-е издание** (Kleppmann & Riccomini, 2025, 673 стр.): полный текст всех 14 глав + выжимки (`ch-*.md`) и карта переноса `_map.md` — куда что уехало в KB §3.1/§5–§10/§15, classic-designs (сверка кейса лент гл. 2), ddia-map §0 (соответствие изданий). Приоритеты: гл. 6–10 — ядро, 1–5 — вторично, 11–13 — опционально, 14 — этика | TASK-45.39 ✅ |

## Порядок чтения

Полный план с таймингом — `methodology.md` §5 (три варианта под слоты: А «завтра» ~4 ч, Б «понедельник» ~8 ч, В «вторник» ~12 ч). Кратко:

1. Статья Яндекса (habr 564132) — каркас секции + эталон URL shortener (60–75 мин)
2. `methodology.md` §1–4 — фреймворк, речевые паттерны, ошибки (20 мин)
3. `knowledge-base.md` §1–2 — числа и back-of-envelope до автоматизма (45 мин)
4. `classic-designs.md` §1 — сборка полного разбора URL shortener (30 мин)
5. `knowledge-base.md` §3–11 — паттерны: хранилища, кэш, шардирование, консистентность, очереди, отказы (90 мин)
6. habr 516604 — взгляд проходца: чек-листы, психология (30 мин)
7. Видео Gabbard — общий фреймворк и калибровка ожиданий (40 мин)
8. DDIA — только по карте (KB §12), не подряд; перед секцией 18.09 не трогать

Приоритет тренировок: URL shortener → лента новостей → мессенджер → медиа-хостинг.

## Материалы от HR

| # | Источник | Ссылка | Конспект |
|---|----------|--------|----------|
| 1 | К. Кардаманов, «Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем» | [habr 564132](https://habr.com/ru/company/yandex/blog/564132/) | `materials/yandex-564132.md` ✅ |
| 2 | System Design Primer — Appendix (числа) | [github](https://github.com/donnemartin/system-design-primer/blob/master/README.md#appendix) | `materials/sdp-appendix-numbers.md` ✅ |
| 3 | System Design Primer — полный гайд | [github](https://github.com/donnemartin/system-design-primer/blob/master/README.md) | `materials/sdp-guide.md` ✅ |
| 4 | «Как я научился проходить архитектурные секции» | [habr 516604](https://m.habr.com/ru/post/516604/) | `materials/habr-516604.md` ✅ |
| 5 | Jackson Gabbard — Intro to Architecture and Systems Design Interviews | [youtube](https://www.youtube.com/watch?v=ZgdS0EUmn70) | `materials/jackson-gabbard-ep06.md` ✅ |
| 6 | DDIA, М. Клеппман («Высоконагруженные приложения») | [dataintensive.net](https://dataintensive.net/) | `materials/ddia-map.md` ✅ + карта в `knowledge-base.md` §12 |

## Связанные документы

- [`../interview-materials.md`](../interview-materials.md) — общая карта материалов по вакансии (этапы 1–2)
- [`../case.md`](../case.md) — хронология и статус кейса
- [`../algo-exam/`](../algo-exam/README.md) — этап 1 (алгоритмы, закрыт): протокол экзаменации, на котором построен протокол тренировок §6
- [`../algo-stage-prep.md`](../algo-stage-prep.md) — подготовка к этапу 1 (архив)
