Учебник по System Design

Добро пожаловать в практический курс по системному дизайну. Материалы собраны в виде коротких, но ёмких уроков, которые постепенно проведут вас от фундаментальных понятий до проектирования сложных распределённых систем и эксплуатации их в продакшене.

Как пользоваться

  • Изучайте блоки последовательно: каждый блок опирается на ключевые идеи предыдущего.
  • В конце каждого урока ищите разделы «Что почитать дальше» и «Проверьте себя», чтобы закрепить материал.
  • Возвращайтесь к файлам как к справочнику перед собеседованиями или при проектировании новых систем.

Структура курса

Блок 1: Фундамент

  1. Введение в System Design
  2. Back-of-the-envelope calculations
  3. Latency numbers
  4. Функциональные и нефункциональные требования
  5. CAP теорема, ACID vs BASE
  6. Consistent Hashing
  7. DNS и основы работы интернета

Блок 2: Networking & Communication

  1. API Design: REST, GraphQL, gRPC
  2. WebSockets, SSE и long polling
  3. Load Balancing: алгоритмы, L4 vs L7
  4. API Gateway и reverse proxy
  5. Rate Limiting: алгоритмы и стратегии

Блок 3: Storage & Data

  1. SQL vs NoSQL
  2. Database Indexes
  3. Репликация: master-slave и master-master
  4. Шардирование: стратегии
  5. Денормализация
  6. Blob Storage и CDN
  7. Кеширование: стратегии
  8. Distributed Caching

Блок 4: Асинхронная обработка

  1. Message Queues
  2. Kafka и event streaming
  3. Async workers и фоновые задачи
  4. WebSockets в продакшене

Блок 5: Микросервисы и паттерны

  1. Microservices: когда и зачем
  2. Service Mesh
  3. Event-driven architecture
  4. API Gateway patterns
  5. Backend for Frontend
  6. Service Discovery

Блок 6: Distributed Systems

  1. Consensus algorithms
  2. Distributed transactions
  3. Data replication
  4. Eventual consistency

Блок 7: Практические системы — Простые

  1. Design URL Shortener
  2. Pastebin
  3. Rate Limiter System
  4. Distributed Key-Value Store
  5. Unique ID Generator

Блок 8: Практические системы — Средние

  1. Web Crawler
  2. Notification System
  3. Autocomplete System
  4. Newsfeed System
  5. Chat System
  6. Search Engine
  7. Nearby Friends

Блок 9: Практические системы — Сложные

  1. Social Network
  2. Ticketing System
  3. Video Streaming
  4. Ride-sharing System
  5. E-commerce Platform
  6. Recommendation System

Блок 10: Production & Operations

  1. Monitoring и Observability
  2. Deployment Strategies
  3. Kubernetes в Production
  4. Disaster Recovery
  5. Security Best Practices