Добро пожаловать в практический курс по системному дизайну. Материалы собраны в виде коротких, но ёмких уроков, которые постепенно проведут вас от фундаментальных понятий до проектирования сложных распределённых систем и эксплуатации их в продакшене.
- Изучайте блоки последовательно: каждый блок опирается на ключевые идеи предыдущего.
- В конце каждого урока ищите разделы «Что почитать дальше» и «Проверьте себя», чтобы закрепить материал.
- Возвращайтесь к файлам как к справочнику перед собеседованиями или при проектировании новых систем.
- Введение в System Design
- Back-of-the-envelope calculations
- Latency numbers
- Функциональные и нефункциональные требования
- CAP теорема, ACID vs BASE
- Consistent Hashing
- DNS и основы работы интернета
- API Design: REST, GraphQL, gRPC
- WebSockets, SSE и long polling
- Load Balancing: алгоритмы, L4 vs L7
- API Gateway и reverse proxy
- Rate Limiting: алгоритмы и стратегии
- SQL vs NoSQL
- Database Indexes
- Репликация: master-slave и master-master
- Шардирование: стратегии
- Денормализация
- Blob Storage и CDN
- Кеширование: стратегии
- Distributed Caching
- Microservices: когда и зачем
- Service Mesh
- Event-driven architecture
- API Gateway patterns
- Backend for Frontend
- Service Discovery
- Web Crawler
- Notification System
- Autocomplete System
- Newsfeed System
- Chat System
- Search Engine
- Nearby Friends