Этот курс — практическое погружение в мир современных распределённых систем и системного дизайна, созданное для инженеров, которые хотят не просто пользоваться готовыми решениями, а понимать, как они устроены внутри. Темы курса 1. Single Node Storage Storage, Index, Concurrency Control, Recovery Как устроен сторидж: страницы, блоки, файлы, буферы Индексы, MVCC, транзакции и блокировки Write-Ahead Logging и восстановление после сбоев Примеры: InnoDB, Postgres, RocksDB 2. Replication Зачем нужна репликация и какие бывают типы (синхронная, асинхронная, leaderless) Репликационные логи и стратегии согласования Репликация в Postgres, MySQL, MongoDB 3. Sharding / Partitioning Горизонтальное масштабирование и деление данных на шард/партиции Consistent hashing, range-based, directory-based подходы Балансировка нагрузки и миграции шардов Спойлер: Подробнее: 4. Consistency & Consensus Модели согласованности (strong, eventual, causal, etc.) Алгоритмы консенсуса: Raft, Paxos, Viewstamped Replication Как достигается fault tolerance в кластере 5. Networking Как общаются узлы в распределённой системе RPC, gRPC, multiplexing, heartbeat Failures, timeouts, и как их правильно обрабатывать 6. Observability & Discovery Метрики, логирование, трассировка Health-checks, service discovery, конфигурационные сервисы Инструменты мониторинга и диагностики 7. Architecture Patterns От классической монолитной СУБД к распределённым решениям Архитектуры NEON, TiDB, Yugabyte, CockroachDB Compute vs Storage separation, CQRS, Event sourcing 8. System Design Hot Questions Как ответить на вопросы вроде: “Как бы вы спроектировали Twitter?” “Как хранить миллионы событий в реальном времени?” “Как построить fault-tolerant key-value store?”