Job 2026 md

title: Конспект материала 30 — system-design-master-plan (mohsenshafiei) source: https://github.com/mohsenshafiei/system-design-master-plan author: Mohsen Shafiei — «Roadmap to Become System Design and Architecture Master»: одна визуальная диаграмма (draw.io), без текстов и ссылок; последнее изменение 07.2024 конспект: подготовлено 2026-09-18, TASK-45.34; исходник карты прочитан целиком (src/roadmap.xml, 156 текстовых узлов), структура восстановлена по координатам и рёбрам; каждая секция сверена с KB / articles / classic-designs статус: P3-источник «после секций», контентного нового нет (95 % тем уже покрыто). Единственное применение до слотов — прогон §2 как трекера самопроверки (15 мин). Это чек-лист, а не учебник: карта не содержит ни одного объяснения или ссылки


Материал 30: system-design-master-plan — roadmap-чек-лист

1. Что это (и что это НЕ)

Репозиторий автора-новичка (один автор, 07.2024): одна диаграмма-дорожная карта «System Design Master Plan» — roadmap-new.svg (текст — кривыми, исходник — src/roadmap.xml draw.io). README — две строки-заглушка. Больше в репо ничего нет: ноль ссылок, ноль объяснений, ноль кейсов.

Структура карты: змейка из ~60 тем в 16 секциях → 30 задач-упражнений → мини-фреймворк прохождения интервью (7 шагов) → «Continue Learning». Ценность для нас — не знания (их нет), а готовый плоский список тем: единственный во всей серии 45.12–45.37 «трекер самопроверки», который можно прогнать за 15 минут и честно отметить, что умеешь назвать с трейдоффом, а что нет.

2. Полная структура карты (что внутри)

2.1 Теория: 16 секций — темы и где они у нас

Легенда: ✅ покрыто и уже в базе; ➕ микро-дополнение одной фразой (см. §3); — не наш жанр/не берём.

Секция карты Темы Где у нас
System Design Basics Horizontal vs Vertical scaling, Monolith vs Microservice, HLD vs LLD, Software Decoupling, Logging & Metrics ✅ articles/03, KB §3, трейдоффы 45.33; ➕ термин «HLD vs LLD»
Key Characteristics of Distributed Systems Resource Sharing, Openness, Concurrency, Scalability, Fault Tolerance, Transparency, Extensibility, Master & Slave ➕ академические характеристики (Tanenbaum-словарь): transparency/openness/extensibility у нас не названы; остальное ✅ (KB §5–§9)
Networks & Protocols IP, TCP, UDP, HTTP, HTTPS, DNS, REST, RPC ✅ KB §1.2/§13.1, трейдофф TCP/UDP 45.33, REST vs RPC 45.13
Latency Metrics & Calculation, Shapes of Data, Sorts & Availability ✅ KB §1.2, 45.25; «shapes of data» — профиль данных, наш жаргон «read-heavy/денормализация»
Throughput Metrics & Calculation, Scalability ✅ трейдофф latency/throughput 45.33
Storage SQL vs NoSQL, Memory Estimation, Sharding & Partitioning, DB Replication, Map-Reduce, ACID ✅ KB §2–§6; Map-Reduce — DDIA гл. 11 (batch). Память «на салфетке» — KB §2
Availability Single Point of Failure, Adding Server / Handling Failing Servers ✅ KB §9, articles/08, Методичка этап 6
Caching Benefits, In-Memory / Database / Application Caching, Cache Aside, Read Through, Write Through, Write Around, Write Back ✅ KB §4, articles/06; ➕ «write-around» — единственная не названная у нас стратегия
Proxies Forward Proxy, Reverse Proxy, NGINX, HAProxy ✅ articles/03, 45.13 (forward vs reverse одной фразой), sdp-guide §4
Consistency Consistent Hashing, Adding Server ✅ KB §6, 45.30 (Instagram логические шарды)
CAP Theorem ✅ KB §7, Brewer-кейс 45.30
Content Delivery Network Push CDNs, Pull CDNs ✅ sdp-guide §4 (push/pull + когда что), articles/03
Load Balancing Round Robin, Weighted RR, Load-Based Selection, IP Hashing, Path/Service Based, L4/L7, LB for LB, Mixed Bag ✅ KB §13.2, 45.19 (архитектура LB), 45.31 (GSLB/DNS)
Logging and Monitoring Data Collection → Transport → Storage → Analysis → Alerting ✅ KB §10, articles/12 (пайплайн телеметрии как цепочка)
Rate Limiting ✅ KB §14.1 (алгоритмы), articles/10, 45.13
Polling and Streaming ✅ KB §13.3, articles/10 (WebSocket / long-polling / SSE)

Итог сверки: из ~60 тем карты не покрыто ничего содержательного; лакуны — 5 микро-фраз (§3).

2.2 Exercises: 30 задач-упражнений (второй слой карты)

Классический пул интервью-задач без tiering и без разборов (только названия). Разбивка по тому, что у нас уже есть:

  • Полностью закрыто нашими эталонами/учебниками (14): URL shortener, Twitter, Instagram, WhatsApp/Telegram-чат, YouTube/Netflix-стриминг, Facebook News Feed, API Rate Limiter, Web Crawler, Google Drive/Dropbox (KB §14.5), Uber/Grab (45.13), Booking/Airbnb (отели — мок 45.27), GitHub-класс, Redis KV, Twitter Search (поиск — из автозаполнения/краулера KB §14).
  • Есть фундамент, собрать за час (8): Pastebin (≈ shortener), Google Docs/Google Sheet (OT/CRDT — вторая линия 45.31), Tinder, Yelp/Nearby Friends (гео — KB §13.6), Mint.com (финансовый агрегатор — финтек-домен пользователя), WeChat (≈ мессенджер + суперприложение), Deployment System, Multiplayer Card Game (real-time).
  • Чужой жанр — LLD, не наш формат секции (6): Questionnaire, Vending Machine, ATM, Traffic Control System, Airline-reservation-класс. Полезны только как «размять сущности и состояния», для секции «крупноблочная схема» смысла нет.

2.3 «Let's Learn How to Solve a Problem» — фреймворк (третий слой карты)

7 шагов: Requirement Clarification → Capacity Estimation (QPS, bandwidth, traffic, storage, read/write ratio) → System API (endpoint'ы, схемы) → Database Schema → High-Level Design → Detailed Design → Removing SPOFs and Bottlenecks.

Это третья независимая фиксация того же кольца, что в нашей методичке (Яндекс-статья → наш §1; Alex Xu «4 шага» → сверка §1; здесь — карта). Совпадение шагов 1:1 с нашими этапами 1–5 (у карты нет отдельного шага эксплуатации — у нас глубже, этап 6 обязателен). Ценность — контрольные вопросы внутри блоков HLD/Detailed Design, которые стоит держать на само-проверке:

  • «Should we keep all data of a user in one DB? Why?» — наш критерий выбора шард-ключа (KB §6).
  • «How do you handle hot users?» — hot partition → coalescing + consistent-hash routing (готовый ответ есть: Discord, 45.33).
  • «What are the cache strategies? Why cache at all?» — этап 4 методички (KB §4).
  • «Which components need better load balancing and which policy?» — этап 6.
  • «Is there any single point of failure? / Do we have enough replicas? / How are we monitoring?» — этап 6, обязательный финал.

3. Микро-лакуны: 5 фраз, которых у нас нет дословно

  1. HLD vs LLD (Basics): один термин — «секция про высокоуровневую схему; low-level (классы/интерфейсы) — это другой жанр интервью, мы его не проходим».
  2. Академические характеристики DS (Tanenbaum-стиль): transparency (прозрачность как цель РС), openness (открытые протоколы), extensibility. Полезны одним предложением в «характеристики распределённой системы» при отказоустойчивости; для секции — опциональный словарь, не тема.
  3. Write-around cache: пишем в БД, кэш затронут только чтениями; антитеза write-through. Одна строка в кэш-блоке (KB §4/статья 06).
  4. Forward proxy (против reverse) — уже есть в 45.13: «forward — перед клиентом (анонимизация/контроль доступа), reverse — перед серверами (фасад/SSL/статика)». Зафиксировать в KB §13 при случае.
  5. «Shapes of data» — переводится в наш жаргон: профиль данных решает схему (read-heavy → денормализация/кэш; write-heavy → LSM-батч; hot rows → партиционирование). У нас этот вывод размазан по KB §3–§6, карта даёт ярлык.

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

4. Что взять в подготовку

До слотов (15 минут, любой вариант А/Б/В)

Прогон §2.1 как трекер самопроверки — идти по 16 секциям и по каждой теме говорить вслух «что это + трейдофф за 30 секунд». Это репетиция речи, а не чтение: карта ничего не объясняет, зато задаёт порядок и полноту. Слабые места — пересобрать из готовых источников (KB §-напротив), новых материалов не открывать (принцип §4 индекса 45.12).

После секций

  1. Задачник §2.2 — расширение пула билетов для раундов тренировок: 8 задач «собрать за час» (Google Docs/Sheet, Yelp/Tinder, Mint.com, Deployment System…) — автоматически дают свежий незнакомый контекст, как каты 45.29. Geek-вариант: прогнать одну LLD-задачу (Vending Machine/ATM) как разминку моделирования сущностей.
  2. Контрольные вопросы §2.3 — добавить в чек-лист self-review рубрики (Методичка §6.2): «все ли данные пользователя в одной БД?», «hot users?», «сколько реплик при падении сервера?» — уже частично есть, карта даёт формулировки.

5. Чего не брать

  • Как учебник/подборку — контента нет: 0 ссылок, 0 объяснений. Всё, что карта называет, у нас уже глубже разобрано.
  • Секцию Exercises целиком — копирует наш пул; уникальных web-scale задач нет (все наши темы пересекаются: shortener/лента/чат/медиа/гео/поиск).
  • LLD-блок и «Continue Learning» — вне формата секции и вне задачи.
  • Никакие темы карты не дают повода открыть «новое» до слота — лакуны §3 закрываются одной строкой в готовых блоках.

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

  • learn-system-design-index.md — индекс и приоритеты всей подборки (45.12)
  • ../methodology.md §5 — план под слоты А/Б/В; §6.2 — рубрика self-review (сюда уходят контрольные вопросы §2.3)
  • ../classic-designs.md — эталоны: URL shortener / лента / мессенджер / медиа (покрывают 14 из 30 задач карты)
  • knowledge-base.md — глубина по каждой секции карты (§-колонка в §2.1)
  • конспекты соседей серии: lsd-awesome-scalability.md (45.30), lsd-ashishps1-resources.md (45.33, трейдоффы + Discord — ответ на «hot users»)