Полный курс по проектированию высоконагруженных систем для бэкенд-разработчиков.
Примеры кода на Go. Написан практиками для практиков.
🇷🇺 Русская версия | 🇬🇧 English version
- Бэкенд-разработчики с опытом 2+ лет
- Готовящиеся к System Design интервью
- Тимлиды, проектирующие архитектуру новых сервисов
12 модулей — от основ до практических кейсов. Каждый модуль содержит теорию, ASCII-диаграммы, таблицы сравнений, примеры кода на Go и ссылки на дополнительные материалы.
| # | Модуль | Ключевые темы |
|---|---|---|
| 01 | Основы System Design | Фреймворк RESHADED, back-of-the-envelope estimation, CAP/PACELC, SLA/SLO/SLI |
| 02 | Сеть и протоколы | DNS, HTTP/2/3, REST vs gRPC vs GraphQL, Load Balancing, API Gateway, Service Discovery |
| # | Модуль | Ключевые темы |
|---|---|---|
| 03 | Базы данных | PostgreSQL, индексы (B-tree, GIN, GiST), транзакции, изоляции, MVCC, SQL vs NoSQL |
| 04 | Масштабирование данных | Репликация, партиционирование, шардинг, consistent hashing, CDC, multi-region |
| 05 | Кеширование | Cache-aside, write-through, Redis, CDN, cache stampede, инвалидация |
| # | Модуль | Ключевые темы |
|---|---|---|
| 06 | Очереди и async | Kafka deep dive, NATS JetStream, RabbitMQ, event-driven architecture |
| 07 | Паттерны распределённых систем | Saga, Outbox, CQRS, Event Sourcing, Raft, distributed locks |
| 08 | Микросервисы | Монолит → микросервисы, API design, service mesh, deployment strategies |
| # | Модуль | Ключевые темы |
|---|---|---|
| 09 | Наблюдаемость | Логи (slog), метрики (Prometheus), трейсинг (OpenTelemetry), incident management |
| 10 | Надёжность | Circuit breaker, retry, rate limiting, load shedding, chaos engineering, DR |
| 11 | Безопасность | JWT, OAuth 2.0, RBAC/ABAC, mTLS, OWASP Top 10, secrets management, Zero Trust |
| # | Модуль | Ключевые темы |
|---|---|---|
| 12 | Практические кейсы | URL Shortener, Мессенджер, News Feed, Rate Limiter, Notification Service, Task Scheduler |
- Язык: Go
- Базы данных: PostgreSQL, Redis, Cassandra, MongoDB, ClickHouse
- Message Brokers: Kafka, NATS, RabbitMQ
- Observability: Prometheus, Grafana, OpenTelemetry, Jaeger
- Infrastructure: Docker, Kubernetes, Istio
- Designing Data-Intensive Applications — Martin Kleppmann
- System Design Interview (Vol. 1 & 2) — Alex Xu
- Building Microservices — Sam Newman
- Site Reliability Engineering — Google
- Database Internals — Alex Petrov
Нашли ошибку или хотите дополнить? Открывайте Issue или Pull Request.
MIT