Roadmap: карта тем#
Что и в каком порядке. Блоки связаны зависимостями: тему из верхнего блока обычно нельзя обсуждать, не опираясь на нижние.
Код карточки состоит из кода темы и номера внутри неё — REL-04, DATA-11. Номер внутри блока, а не сквозной: карточку можно добавить, не трогая остальные. Соответствие прежним сквозным номерам — в 97-card-map.md.
flowchart BT
B01[B01 · Сеть, протоколы, API] --> B02[B02 · Приём трафика]
B01 --> B03[B03 · Хранилища и данные]
B03 --> B04[B04 · Кэширование]
B03 --> B05[B05 · Асинхронность]
B03 --> B06[B06 · Распределённые системы]
B05 --> B06
B02 --> B07[B07 · Архитектурные стили]
B06 --> B07
B06 --> B08[B08 · Надёжность]
B02 --> B09[B09 · Безопасность]
B07 --> B10[B10 · Доставка и эксплуатация]
B08 --> B10
B04 --> B11[B11 · Производительность и стоимость]
B10 --> B11
B07 --> B12[B12 · Кейсы]
B08 --> B12
B11 --> B12
Три трека прохождения#
| Трек | Кому | Что читать |
|---|---|---|
| Минимум (~4 часа) | Нужно быстро войти в тему | 00-workflow.md целиком + NET-01, NET-03, NET-08, NET-16, EDGE-01, EDGE-05, DATA-01, DATA-05, DATA-08, DATA-09, DATA-10, CACHE-01, CACHE-04, MSG-01, MSG-02, MSG-06, DIST-02, DIST-03, DIST-08, REL-01, REL-02, OPS-07, PERF-01 |
| Полный | Систематическое изучение | Блоки по порядку графа зависимостей: B01 → B02/B03 → B04/B05 → B06 → B07/B08 → B09/B10/B11 → B12 |
| Под интервью | Подготовка к system design интервью | 00-workflow.md (быстрый проход 45 мин) → B06, B03, B05, B08 → все кейсы B12 → чек-лист W11 |
Легенда#
- Шаг — шаг рабочего процесса, к которому относится карточка; у справок и кейсов — их вид
- ✅ — карточка написана (все 155 готовы)
Реестр тем#
B01 · Сеть, протоколы, API#
topics/01-network-and-api.md · 21 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| NET-01 | ✅ | Как работает интернет: DNS, TCP/UDP, маршрутизация | W1 |
| NET-02 | ✅ | Сетевая модель OSI и TCP/IP | W4 |
| NET-03 | ✅ | HTTP: эволюция 1.1 → 2 → 3 | W2 |
| NET-04 | ✅ | HTTPS и TLS: рукопожатие, сертификаты | W8 |
| NET-05 | ✅ | HTTP-коды и семантика ошибок | W2 |
| NET-06 | ✅ | HTTP-кэширование и условные запросы | W2 |
| NET-07 | ✅ | Форматы сериализации и сжатие | W2 |
| NET-08 | ✅ | Стили API: обзор и выбор | W2 |
| NET-09 | ✅ | REST: ресурсы, методы, безопасность и идемпотентность методов | W2 |
| NET-10 | ✅ | gRPC и protobuf | W2 |
| NET-11 | ✅ | GraphQL: когда оправдан | W2 |
| NET-12 | ✅ | Realtime-транспорт: polling, long polling, SSE, WebSocket | W2 |
| NET-13 | ✅ | Асинхронные операции в API: 202 и ресурс статуса | W2 |
| NET-14 | ✅ | Пагинация: offset vs cursor | W2 |
| NET-15 | ✅ | Массовые операции и батчинг | W2 |
| NET-16 | ✅ | Идемпотентность запросов и ключ идемпотентности | W2 |
| NET-17 | ✅ | Версионирование API и обратная совместимость | W2 |
| NET-18 | ✅ | Контракты и схемы: OpenAPI, protobuf, schema registry | W2 |
| NET-19 | ✅ | CORS и браузерная модель безопасности | W8 |
| NET-20 | ✅ | API vs SDK | W2 |
| NET-21 | ✅ | Устройство веб-приложения (вводная) | W4 |
B02 · Приём трафика: LB / proxy / gateway / CDN#
topics/02-traffic-and-edge.md · 9 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| EDGE-01 | ✅ | Балансировка нагрузки: L4 vs L7, алгоритмы | W5 |
| EDGE-02 | ✅ | Proxy и reverse proxy | W4 |
| EDGE-03 | ✅ | API gateway: зона ответственности и отличие от LB/RP | W4 |
| EDGE-04 | ✅ | Точка входа: ingress, маршрутизация по путям и версиям | W9 |
| EDGE-05 | ✅ | CDN и edge-кэширование | W5 |
| EDGE-06 | ✅ | Rate limiting: token bucket, leaky bucket, sliding window | W8 |
| EDGE-07 | ✅ | Защита периметра: WAF, DDoS, боты | W8 |
| EDGE-08 | ✅ | Service discovery и регистрация сервисов | W4 |
| EDGE-09 | ✅ | Глобальная маршрутизация: anycast, GSLB, geo-DNS | W7 |
B03 · Хранилища и данные#
topics/03-storage-and-data.md · 19 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| DATA-01 | ✅ | Выбор хранилища: SQL, NoSQL, специализированные | W3 |
| DATA-02 | ✅ | Специализированные хранилища: time-series, графовые, векторные | W3 |
| DATA-03 | ✅ | Моделирование данных от паттернов доступа | W3 |
| DATA-04 | ✅ | Типы данных: деньги, время, часовые пояса, идентификаторы | W3 |
| DATA-05 | ✅ | Индексы: B-tree vs LSM, составные и покрывающие | W3 |
| DATA-06 | ✅ | SQL: порядок выполнения и оптимизация запросов | W3 |
| DATA-07 | ✅ | ACID и транзакции | W6 |
| DATA-08 | ✅ | Уровни изоляции, аномалии, MVCC, блокировки | W6 |
| DATA-09 | ✅ | Репликация: sync/async, лаг, read-your-writes | W5 |
| DATA-10 | ✅ | Шардирование и партиционирование: выбор ключа, ребалансировка | W5 |
| DATA-11 | ✅ | Consistent hashing | W5 |
| DATA-12 | ✅ | Object storage и работа с файлами | W3 |
| DATA-13 | ✅ | Полнотекстовый поиск и инвертированный индекс | W3 |
| DATA-14 | ✅ | Геоданные и геоиндексы: geohash, S2/H3, R-дерево | W3 |
| DATA-15 | ✅ | OLTP vs OLAP: warehouse, lake, lakehouse | W3 |
| DATA-16 | ✅ | Целостность и сверка данных | W9 |
| DATA-17 | ✅ | Миграции схемы без простоя, бэкфиллы | W9 |
| DATA-18 | ✅ | Мультитенантность и изоляция данных | W3 |
| DATA-19 | ✅ | Retention, удаление данных, приватность | W0 |
B04 · Кэширование#
topics/04-caching.md · 5 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| CACHE-01 | ✅ | Уровни кэша: клиент, CDN, приложение, БД | W5 |
| CACHE-02 | ✅ | Стратегии: cache-aside, read/write-through, write-behind | W5 |
| CACHE-03 | ✅ | Инвалидация и согласованность кэша с БД | W6 |
| CACHE-04 | ✅ | Патологии: stampede, hot key, negative caching | W7 |
| CACHE-05 | ✅ | Redis: модель данных, однопоточность, сценарии | W5 |
B05 · Асинхронность и обмен сообщениями#
topics/05-async-and-messaging.md · 11 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| MSG-01 | ✅ | Модели взаимодействия: команда, событие, запрос-ответ | W2 |
| MSG-02 | ✅ | Очередь vs лог: семантика и последствия выбора | W4 |
| MSG-03 | ✅ | RabbitMQ и модель AMQP | W4 |
| MSG-04 | ✅ | Kafka: устройство, производительность, сценарии | W4 |
| MSG-05 | ✅ | Карта брокеров: NATS, Pulsar, SQS/SNS, Redis Streams, БД-как-очередь | W4 |
| MSG-06 | ✅ | Гарантии доставки и дедупликация | W6 |
| MSG-07 | ✅ | Transactional outbox и CDC | W6 |
| MSG-08 | ✅ | Повторы потребителя, DLQ, poison messages | W7 |
| MSG-09 | ✅ | Backpressure и flow control | W7 |
| MSG-10 | ✅ | Webhooks: доставка, повторы, подпись | W2 |
| MSG-11 | ✅ | Data pipeline: батч vs стрим | W3 |
B06 · Распределённые системы и масштабирование#
topics/06-distributed-systems.md · 11 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| DIST-01 | ✅ | Вертикальное vs горизонтальное масштабирование | W5 |
| DIST-02 | ✅ | CAP и PACELC | W6 |
| DIST-03 | ✅ | Модели согласованности: linearizability, causal, eventual | W6 |
| DIST-04 | ✅ | Кворумы чтения и записи (R + W > N) | W6 |
| DIST-05 | ✅ | Консенсус: Raft, leader election | W6 |
| DIST-06 | ✅ | Обнаружение отказов и мембершип: heartbeat, gossip, SWIM | W7 |
| DIST-07 | ✅ | Распределённые блокировки и lease | W6 |
| DIST-08 | ✅ | Распределённые транзакции: 2PC, saga, TCC | W6 |
| DIST-09 | ✅ | Генерация уникальных ID: Snowflake, UUIDv7, ULID | W3 |
| DIST-10 | ✅ | Время, версии, разрешение конфликтов, CRDT | W6 |
| DIST-11 | ✅ | Паттерны распределённых систем: обзор | W4 |
B07 · Архитектурные стили#
topics/07-architecture-styles.md · 13 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| ARCH-01 | ✅ | Монолит, модульный монолит, микросервисы | W4 |
| ARCH-02 | ✅ | Границы сервисов и bounded context | W4 |
| ARCH-03 | ✅ | Внутренняя архитектура сервиса: слои, порты и адаптеры | W4 |
| ARCH-04 | ✅ | Event-driven: хореография vs оркестрация | W4 |
| ARCH-05 | ✅ | Оркестрация длительных процессов: workflow-движки | W4 |
| ARCH-06 | ✅ | CQRS | W4 |
| ARCH-07 | ✅ | Event sourcing | W4 |
| ARCH-08 | ✅ | Фоновые задачи и планировщики | W4 |
| ARCH-09 | ✅ | Serverless: когда выгоден и когда нет | W10 |
| ARCH-10 | ✅ | Service mesh, sidecar, BFF | W4 |
| ARCH-11 | ✅ | Клиентские архитектурные паттерны | W4 |
| ARCH-12 | ✅ | Cloud native | W9 |
| ARCH-13 | ✅ | Миграция монолита: strangler fig | W4 |
B08 · Надёжность и отказоустойчивость#
topics/08-reliability.md · 12 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| REL-01 | ✅ | Таймауты, повторы, exponential backoff, jitter | W7 |
| REL-02 | ✅ | Circuit breaker и bulkhead | W7 |
| REL-03 | ✅ | Load shedding и приоритизация запросов | W7 |
| REL-04 | ✅ | Graceful degradation, фича-флаги, kill switch | W7 |
| REL-05 | ✅ | Health checks: liveness vs readiness | W9 |
| REL-06 | ✅ | Проектирование отказоустойчивости: обзор | W7 |
| REL-07 | ✅ | Ячеистая архитектура и радиус поражения | W7 |
| REL-08 | ✅ | Multi-AZ, multi-region, failover | W7 |
| REL-09 | ✅ | Бэкапы, DR, RPO и RTO | W7 |
| REL-10 | ✅ | Chaos engineering и game days | W7 |
| REL-11 | ✅ | Метастабильные отказы | W7 |
| REL-12 | ✅ | Серый отказ и differential observability | W7 |
B09 · Безопасность#
topics/09-security.md · 13 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| SEC-01 | ✅ | Аутентификация: сессии vs токены | W8 |
| SEC-02 | ✅ | JWT: устройство и грабли | W8 |
| SEC-03 | ✅ | OAuth 2.0 и OIDC | W8 |
| SEC-04 | ✅ | Авторизация: RBAC, ABAC, ReBAC | W8 |
| SEC-05 | ✅ | Хранение паролей | W8 |
| SEC-06 | ✅ | Безопасность API: типовые угрозы | W8 |
| SEC-07 | ✅ | Типовые атаки: XSS, CSRF, SQL-инъекции, SSRF | W8 |
| SEC-08 | ✅ | Шифрование, управление ключами и секретами | W8 |
| SEC-09 | ✅ | Транспортная безопасность: TLS, mTLS, SSH | W8 |
| SEC-10 | ✅ | Безопасность цепочки поставок и зависимостей | W9 |
| SEC-11 | ✅ | Threat modeling | W0 |
| SEC-12 | ✅ | Аудит и трассируемость действий | W9 |
| SEC-13 | ✅ | Классификация данных и режим защиты | W0 |
B10 · Доставка и эксплуатация#
topics/10-delivery-and-ops.md · 17 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| OPS-01 | ✅ | CI/CD | W9 |
| OPS-02 | ✅ | Стратегии выкатки: rolling, blue-green, canary | W9 |
| OPS-03 | ✅ | Окружения, тестовые данные и стенды | W9 |
| OPS-04 | ✅ | Bare metal, VM, контейнеры, Docker | W9 |
| OPS-05 | ✅ | Kubernetes: что решает и чего стоит | W9 |
| OPS-06 | ✅ | Конфигурация и IaC | W9 |
| OPS-07 | ✅ | Observability: метрики, логи, трейсы | W9 |
| OPS-08 | ✅ | Стоимость observability: кардинальность, сэмплирование, ретенция | W10 |
| OPS-09 | ✅ | SLI, SLO, error budget | W0 |
| OPS-10 | ✅ | Алертинг, дежурства, постмортемы | W9 |
| OPS-11 | ✅ | Ёмкость и автоскейлинг | W1 |
| OPS-12 | ✅ | Тестирование: пирамида, контрактные, нагрузочные | W9 |
| OPS-13 | ✅ | Отладка и диагностика в проде | W9 |
| OPS-14 | ✅ | DevOps, SRE, Platform Engineering: роли | справка |
| OPS-15 | ✅ | Монорепозиторий vs полирепо | справка |
| OPS-16 | ✅ | Релиз мобильных приложений | справка |
| OPS-17 | ✅ | Когнитивная нагрузка команды | W4 |
B11 · Производительность и стоимость#
topics/11-performance-and-cost.md · 11 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| PERF-01 | ✅ | Числа задержек и бюджет latency | W1 |
| PERF-02 | ✅ | Перцентили, tail latency, coordinated omission | W1 |
| PERF-03 | ✅ | Big-O и структуры данных в инфраструктуре | справка |
| PERF-04 | ✅ | Конкурентность vs параллелизм | W5 |
| PERF-05 | ✅ | Оптимизация производительности API | W5 |
| PERF-06 | ✅ | Пулы соединений, N+1, батчинг | W5 |
| PERF-07 | ✅ | Закон Литтла, очереди, насыщение | W1 |
| PERF-08 | ✅ | Нагрузочное тестирование: методика | W9 |
| PERF-09 | ✅ | Профилирование и инструменты | W5 |
| PERF-10 | ✅ | Сборка мусора и её влияние на p99 | справка |
| PERF-11 | ✅ | Стоимость, TCO, unit-экономика запроса | W10 |
B12 · Кейсы#
topics/12-case-studies.md · 13 тем
| ID | Статус | Тема | Шаг |
|---|---|---|---|
| CASE-01 | ✅ | Сокращатель ссылок (подробный проход) | подробный проход |
| CASE-02 | ✅ | Лента новостей (подробный проход) | подробный проход |
| CASE-03 | ✅ | Чат / мессенджер (подробный проход) | подробный проход |
| CASE-04 | ✅ | Rate limiter | короткий разбор |
| CASE-05 | ✅ | Сервис уведомлений | короткий разбор |
| CASE-06 | ✅ | Автодополнение поиска | короткий разбор |
| CASE-07 | ✅ | Загрузка и раздача видео | короткий разбор |
| CASE-08 | ✅ | Бронирование билетов: борьба за дефицитный ресурс | короткий разбор |
| CASE-09 | ✅ | Платёжный поток | короткий разбор |
| CASE-10 | ✅ | Геопоиск ближайших объектов | короткий разбор |
| CASE-11 | ✅ | Дедупликация и top-K | короткий разбор |
| CASE-12 | ✅ | Мультитенантный SaaS | короткий разбор |
| CASE-13 | ✅ | Разборы реальных архитектур: Discord, Netflix, Stack Overflow, Hotstar, Google, Prime Video | обзор |
Итого 155 тем. Четыре из них — REL-11, REL-12, SEC-13 и OPS-17 — найдены исследованием поля.
Очередь работ: 96-backlog.md.