Библиография#
Все внешние источники, на которые ссылается документ. Первая часть — опорные работы, к которым стоит обращаться систематически; вторая — полный указатель по блокам, собранный автоматически из карточек.
Видео ByteByteGo здесь не перечисляются: они указаны в «Источниках» тех карточек, которые их пересказывают.
Опорные работы#
Книги#
- Martin Kleppmann. Designing Data-Intensive Applications — dataintensive.net. Самая цитируемая книга в этом документе. Хранилища, репликация, шардирование, транзакции, согласованность, потоковая обработка. Если читать одну книгу по теме — эту.
- Michael Nygard. Release It! — pragprog.com. Устойчивость: таймауты, circuit breaker, bulkhead, режимы отказа. Источник большинства паттернов блока B08.
- Sam Newman. Building Microservices (и Monolith to Microservices) — samnewman.io. Границы сервисов, миграция монолита, интеграция.
- Eric Evans. Domain-Driven Design — domainlanguage.com. Ограниченные контексты и язык предметной области; основа блока B07.
- Neal Ford, Mark Richards. Software Architecture: The Hard Parts — oreilly.com. Статическая и динамическая связанность, силы дезинтеграции и интеграции данных и сервисов, восемь моделей саги. Источник документов решений
D-02иD-04. - Brendan Gregg. Systems Performance — brendangregg.com. Методики USE, профилирование, диагностика на уровне системы.
- Alex Xu. System Design Interview, vol. 1–2 — сборник задач; полезен как каталог кейсов, а не как источник истины.
- Adam Shostack. Threat Modeling — shostack.org. Систематический разбор угроз.
- Hohpe, Woolf. Enterprise Integration Patterns — enterpriseintegrationpatterns.com. Словарь моделей обмена сообщениями.
Наборы материалов#
- Google SRE Book и SRE Workbook — sre.google. Целевые уровни, бюджет ошибок, перегрузка, каскадные отказы, целостность данных, дежурства и постмортемы. Второй по цитируемости источник документа.
- AWS Well-Architected Framework — docs.aws.amazon.com. Пять «столпов»: надёжность, производительность, стоимость, безопасность, операции.
- AWS Builders' Library — aws.amazon.com/builders-library. Короткие инженерные статьи: таймауты и джиттер, проверки здоровья, сброс нагрузки, статическая стабильность, перемешанное шардирование.
- OWASP Cheat Sheet Series и OWASP API Security Top 10 — cheatsheetseries.owasp.org, owasp.org/API-Security. Практические рекомендации по безопасности.
- Martin Fowler — bliki и статьи — martinfowler.com. CQRS, event sourcing, strangler fig, feature toggles, эволюционный дизайн БД.
- microservices.io (Chris Richardson) — microservices.io. Каталог паттернов: saga, outbox, API gateway, декомпозиция.
- Azure Architecture — Cloud Design Patterns — learn.microsoft.com. Альтернативный каталог с примерами реализации.
Статьи-первоисточники#
- Dynamo: Amazon's Highly Available Key-value Store (SOSP 2007) — allthingsdistributed.com. Согласованное хэширование, кворумы, векторные часы.
- In Search of an Understandable Consensus Algorithm (Raft) — raft.github.io.
- Leslie Lamport. Time, Clocks, and the Ordering of Events — lamport.azurewebsites.net.
- Gilbert, Lynch. Brewer's Conjecture (CAP) — dl.acm.org; Daniel Abadi. PACELC — cs.umd.edu.
- Dean, Barroso. The Tail at Scale (CACM 2013) — cacm.acm.org.
- Spanner: Google's Globally-Distributed Database (OSDI 2012) — research.google.
- Scaling Memcache at Facebook (NSDI 2013) — usenix.org.
- SWIM: Scalable Weakly-consistent Membership Protocol (DSN 2002) — cs.cornell.edu.
- Pat Helland. Life beyond Distributed Transactions (CIDR 2007) — cidrdb.org.
- Gil Tene. How NOT to Measure Latency — infoq.com.
Спецификации, к которым стоит обращаться напрямую#
RFC 9110 (семантика HTTP), 9111 (кэширование), 9113 / 9114 (HTTP/2, HTTP/3), 8446 (TLS 1.3), 6455 (WebSocket), 7519 и 8725 (JWT), 6749 и 9700 (OAuth 2.0), 9457 (формат ошибок), 9562 (UUIDv7). Все — на rfc-editor.org.
Указатель по блокам#
Полный список внешних ссылок из карточек, сгруппированный по блокам. Собран автоматически.
B01 · Сеть, протоколы, API#
- Apache Avro — Specification
- AWS Builders' Library — Making retries safe with idempotent APIs
- Cloudflare — What is DNS?
- Cloudflare — What is the OSI model?
- Confluent Schema Registry — Compatibility
- Google AIP-151 — Long-running operations
- Google AIP-231 — Batch methods
- Google API Design Guide
- Google API Design Guide — List Pagination
- Google AIP-185 — API Versioning
- GraphQL — Specification и Best Practices
- gRPC — Deadlines
- gRPC — Documentation
- High Performance Browser Networking (Ilya Grigorik)
- JSON Lines
- Martin Fowler — Consumer-Driven Contracts
- MDN — Cross-Origin Resource Sharing
- MDN — How the web works
- MDN — HTTP caching
- MDN — SameSite cookies
- MDN — Server-Sent Events
- Microsoft — REST API guidelines: long running operations
- Mozilla — Server Side TLS recommendations
- Netflix — эволюция API-архитектуры
- OpenAPI Generator
- OpenAPI Specification
- OWASP — CSRF Prevention Cheat Sheet
- Pact — Consumer-driven contract testing
- Protocol Buffers — Encoding
- Protocol Buffers — Language Guide
- RFC 4918 — 207 Multi-Status
- RFC 5861 — stale-while-revalidate
- RFC 6455 — WebSocket Protocol
- RFC 8446 — TLS 1.3
- RFC 8878 — Zstandard
- RFC 9110 — 202 Accepted
- RFC 9110 — Conditional Requests
- RFC 9110 — Content Codings
- RFC 9110 — HTTP Semantics
- RFC 9110 — Idempotent Methods
- RFC 9111 — HTTP Caching
- RFC 9113 — HTTP/2
- RFC 9114 — HTTP/3
- RFC 9457 — Problem Details for HTTP APIs
- RFC 9745 — The Deprecation HTTP Header Field
- Roy Fielding — Architectural Styles (гл. 5)
- Stripe — API upgrades и версии
- Stripe — Idempotent requests
- Stripe — Libraries
- Use The Index, Luke — Paging Through Results
- WHATWG HTML — Server-sent events
- WHATWG — Fetch Standard, CORS protocol
B02 · Приём трафика#
- AWS — Global Accelerator и Route 53 routing policies
- Cloudflare — What is a CDN?
- GitHub — отчёт о доступности за август 2026
- Cloudflare — What is a DDoS attack?
- Cloudflare — What is a reverse proxy?
- Cloudflare — What is Anycast?
- Cloudflare — What is rate limiting?
- Envoy — Load balancing
- Fastly — Cache control tutorial
- Google SRE Book, гл. 19–20
- Google SRE Book, гл. 21
- HashiCorp Consul — Service discovery
- Istio — Traffic management
- Kong — What is an API gateway
- Kubernetes — Gateway API
- Kubernetes — Ingress
- Kubernetes — Service
- MDN — HTTP caching
- microservices.io — API Gateway
- microservices.io — Service registry
- NGINX — HTTP Load Balancing
- NGINX — Reverse proxy
- OWASP — Automated Threats to Web Applications
- OWASP — Web Application Firewall
- RFC 6585 — 429 Too Many Requests
- Stripe — Rate limiters
B03 · Хранилища и данные#
- A Critique of ANSI SQL Isolation Levels (Berenson et al.)
- Apache Iceberg — Table format spec
- AWS S3 — Consistency model
- AWS S3 — Lifecycle configuration
- AWS S3 — Multipart upload
- AWS S3 — Presigned URLs
- AWS SaaS Lens — Well-Architected
- AWS — Purpose-built databases
- Databricks — Lakehouse (CIDR 2021)
- Dynamo paper (SOSP 2007)
- DynamoDB — Best practices for designing and using partition keys
- Elasticsearch — Inverted index
- GDPR, ст. 17 — право на удаление
- gh-ost — online schema migration for MySQL
- Google S2 Geometry
- Google SRE Book, гл. 26 «Data Integrity»
- Google — Maglev (NSDI 2016)
- Gorilla: A Fast, Scalable, In-Memory Time Series Database (VLDB 2015)
- How Discord Stores Trillions of Messages
- IANA Time Zone Database
- Introduction to Information Retrieval (Manning et al.)
- Jepsen — Consistency models
- Karger et al. — Consistent Hashing and Random Trees (1997)
- Kleppmann, DDIA, гл. 2–3
- Malkov & Yashunin — Efficient and robust ANN search using HNSW
- Martin Fowler — Aggregate
- Martin Fowler — Evolutionary Database Design
- Martin Fowler — Money pattern
- Microsoft — Multi-tenant SaaS database tenancy patterns
- Neo4j — Graph database concepts
- pgvector
- PostGIS — Spatial indexing
- PostgreSQL — ALTER TABLE
- PostgreSQL — Data checksums
- PostgreSQL — Date/Time Types
- PostgreSQL — Full Text Search
- PostgreSQL — High Availability, Load Balancing, and Replication
- PostgreSQL — Indexes
- PostgreSQL — Reliability and the Write-Ahead Log
- PostgreSQL — Row Security Policies
- PostgreSQL — Table Partitioning
- PostgreSQL — Transaction Isolation
- PostgreSQL — Using EXPLAIN
- Prometheus — Storage
- Redis — Geospatial indexes
- RFC 3339 — Date and Time on the Internet
- Uber H3 — Hexagonal hierarchical spatial index
- Unicode UAX #15 — Normalization Forms
- Use The Index, Luke
- Vitess — Sharding
B04 · Кэширование#
- AWS — Caching Best Practices
- AWS — Caching patterns
- Google SRE Book, гл. 22 «Addressing Cascading Failures»
- MDN — HTTP caching
- Optimal Probabilistic Cache Stampede Prevention (VLDB 2015)
- Redis — Client-side caching
- Redis — Documentation
- Redis — Key eviction
- Redis — Persistence
- RFC 5861 — stale-while-revalidate
- Scaling Memcache at Facebook (NSDI 2013)
B05 · Асинхронность и сообщения#
- Apache Flink — Event time and watermarks
- Apache Pulsar — Concepts and Architecture
- AWS SQS — Dead-letter queues
- AWS SQS — Standard и FIFO очереди
- Azure Architecture — Retry pattern
- Confluent — Error handling patterns for Apache Kafka
- Confluent — Transactions and exactly-once
- Debezium — Documentation
- GitHub — Securing webhooks
- Google SRE Book, гл. 21 «Handling Overload»
- Hohpe & Woolf — Enterprise Integration Patterns
- Kafka — Design
- Kafka — Message delivery semantics
- Kafka — Replication и ISR
- Kleppmann, DDIA, гл. 11
- Martin Fowler — What do you mean by "Event-Driven"?
- microservices.io — Communication style
- microservices.io — Transactional outbox
- NATS — JetStream
- Netflix — Performance Under Load (adaptive concurrency limits)
- PostgreSQL — SELECT FOR UPDATE SKIP LOCKED
- RabbitMQ — AMQP 0-9-1 Model Explained
- RabbitMQ — Consumer Prefetch
- RabbitMQ — Quorum Queues
- RabbitMQ — Tutorials и модель обменников
- Reactive Streams — Specification
- Redis — Streams
- Standard Webhooks
- Stripe — Webhooks
- The Dataflow Model (VLDB 2015)
B06 · Распределённые системы#
- Apache Cassandra — Consistency levels
- AWS Well-Architected — Performance Efficiency Pillar
- Azure Architecture — Cloud Design Patterns
- Daniel Abadi — Consistency Tradeoffs in Modern Distributed Database System Design (PACELC)
- Dynamo: Amazon's Highly Available Key-value Store (SOSP 2007)
- Eric Brewer — CAP Twelve Years Later
- etcd — Distributed locks / lease
- etcd — Learning: Data model and Raft
- Garcia-Molina & Salem — Sagas (1987)
- Gilbert & Lynch — Brewer's Conjecture (2002)
- HashiCorp Serf — Gossip protocol
- Hayashibara et al. — The φ Accrual Failure Detector
- Highly Available Transactions: Virtues and Limitations (Bailis et al.)
- In Search of an Understandable Consensus Algorithm (Raft), Ongaro & Ousterhout
- Jepsen — Consistency Models
- Lamport — Time, Clocks, and the Ordering of Events (1978)
- Leslie Lamport — Paxos Made Simple
- Martin Kleppmann — How to do distributed locking
- microservices.io — Pattern language
- microservices.io — Saga pattern
- Pat Helland — Life beyond Distributed Transactions (CIDR 2007)
- raft.github.io — визуализация
- Redis — Distributed Locks
- RFC 9562 — Universally Unique IDentifiers (UUIDv7)
- Shapiro et al. — Conflict-free Replicated Data Types
- Spanner: Google's Globally-Distributed Database (OSDI 2012)
- SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol (DSN 2002)
- Twitter Snowflake
- ULID specification
- Кleppmann, DDIA, гл. 1
B07 · Архитектурные стили#
- Alistair Cockburn — Hexagonal Architecture
- AWS Lambda — Best practices
- AWS Step Functions
- Bernd Ruecker — Practical Process Automation
- Camunda — BPMN и оркестрация микросервисов
- CNCF — Cloud Native Definition
- Eric Evans — Domain-Driven Design
- Google SRE Book, гл. 24 «Distributed Periodic Scheduling with Cron»
- Greg Young — CQRS Documents
- Greg Young — Versioning in an Event Sourced System
- Istio — What is a service mesh?
- Kubernetes — CronJob
- Martin Fowler — BoundedContext
- Martin Fowler — CQRS
- Martin Fowler — Domain Model и Transaction Script
- Martin Fowler — Event Sourcing
- Martin Fowler — MonolithFirst
- Martin Fowler — ParallelRun
- Martin Fowler — Serverless Architectures
- Martin Fowler — StranglerFigApplication
- Martin Fowler — What do you mean by "Event-Driven"?
- MDN — Progressive web apps
- microservices.io — Decompose by subdomain
- microservices.io — Microservice architecture
- microservices.io — Saga: choreography и orchestration
- microservices.io — Sidecar
- Microsoft — CQRS pattern
- Microsoft — Event Sourcing pattern
- Prime Video Tech Blog — Scaling up the audio/video monitoring service
- Robert C. Martin — The Clean Architecture
- Sam Newman — Backends For Frontends
- Sam Newman — Building Microservices
- Sam Newman — Monolith to Microservices
- Sidekiq — Best practices
- Temporal — Documentation
- The Twelve-Factor App
- Vaughn Vernon — Effective Aggregate Design
- Vaughn Vernon — Implementing Domain-Driven Design
- web.dev — Offline cookbook
B08 · Надёжность#
- AWS Architecture Blog — Exponential Backoff And Jitter
- AWS Builders' Library — Implementing health checks
- AWS Builders' Library — Static stability using Availability Zones
- AWS Builders' Library — Timeouts, retries, and backoff with jitter
- AWS Builders' Library — Using load shedding to avoid overload
- AWS Builders' Library — Workload isolation using shuffle-sharding
- AWS Well-Architected — Reducing the scope of impact with cell-based architecture
- AWS Well-Architected — Reliability Pillar
- AWS — Disaster Recovery workloads: strategies
- Azure Architecture — Bulkhead pattern
- Azure Architecture — Circuit Breaker pattern
- Fail at Scale (ACM Queue, Facebook)
- Google Cloud — DR planning guide
- Google SRE Book, гл. 21 «Handling Overload»
- Google SRE Book, гл. 22 «Addressing Cascading Failures»
- Google SRE Book, гл. 26 «Data Integrity»
- Kubernetes — Configure Liveness, Readiness and Startup Probes
- Martin Fowler — CircuitBreaker
- Martin Fowler — Feature Toggles
- Netflix Tech Blog — Chaos Engineering Upgraded
- Netflix — Performance Under Load
- PostgreSQL — Continuous Archiving and PITR
- Principles of Chaos Engineering
B09 · Безопасность#
- Adam Shostack — Threat Modeling: Designing for Security
- CISA/NTIA — Software Bill of Materials
- Google BeyondCorp
- Google SRE Book, гл. 26 «Data Integrity»
- Google Zanzibar: Consistent, Global Authorization System
- Microsoft — STRIDE и SDL Threat Modeling
- NIST SP 800-207 — Zero Trust Architecture
- NIST SP 800-57 — Key Management
- NIST SP 800-63B — Digital Identity Guidelines
- NIST SP 800-92 — Guide to Computer Security Log Management
- NIST — Attribute Based Access Control
- OpenID Connect Core
- OWASP API Security Top 10 (2023)
- OWASP API Security Top 10 — Broken Object Level Authorization
- OWASP Top 10
- OWASP — Authentication Cheat Sheet
- OWASP — Authorization Cheat Sheet
- OWASP — Cross Site Scripting Prevention
- OWASP — Cryptographic Storage Cheat Sheet
- OWASP — Dependency-Check и Top 10 CI/CD Security Risks
- OWASP — JWT Cheat Sheet
- OWASP — Logging Cheat Sheet
- OWASP — Password Storage Cheat Sheet
- OWASP — REST Security Cheat Sheet
- OWASP — Secrets Management Cheat Sheet
- OWASP — Session Management Cheat Sheet
- OWASP — SQL Injection Prevention Cheat Sheet
- OWASP — SSRF Prevention Cheat Sheet
- OWASP — Threat Modeling Cheat Sheet
- RFC 6749 — OAuth 2.0
- RFC 7519 — JSON Web Token
- RFC 8725 — JWT Best Current Practices
- RFC 9106 — Argon2
- RFC 9700 — OAuth 2.0 Security Best Current Practice
- Sigstore
- SLSA — Supply-chain Levels for Software Artifacts
- SPIFFE — Secure Production Identity Framework
B10 · Доставка и эксплуатация#
- Accelerate / DORA metrics
- Alex Hidalgo — Implementing Service Level Objectives
- Android — Staged rollouts
- Apple — Phased release for automatic updates
- AWS — Auto Scaling best practices
- Bazel
- Brendan Gregg — USE Method
- Docker — Best practices for building images
- Google SRE Book — Introduction
- Google SRE Book, гл. 11 «Being On-Call»
- Google SRE Book, гл. 12 «Effective Troubleshooting»
- Google SRE Book, гл. 18 «Software Engineering in SRE» и гл. 11 про планирование ёмкости
- Google SRE Book, гл. 4 «Service Level Objectives»
- Google SRE Book, гл. 6 «Monitoring Distributed Systems»
- Google SRE Book, гл. 6 и 15 «Postmortem Culture»
- Google SRE Book, гл. 8 «Release Engineering»
- Google SRE Workbook — Alerting on SLOs
- Google SRE Workbook — Canarying Releases
- Google SRE Workbook — Implementing SLOs
- Google SRE Workbook — Monitoring
- Google — Testing on the Toilet: тестовые данные
- Google — Why Google Stores Billions of Lines of Code in a Single Repository (CACM 2016)
- HashiCorp — Terraform: infrastructure as code
- Jez Humble — Continuous Delivery
- Kubernetes — Concepts
- Kubernetes — Horizontal Pod Autoscaling
- Kubernetes — Managing resources for containers
- Linux — namespaces и cgroups
- Martin Fowler — BlueGreenDeployment
- Martin Fowler — CanaryRelease
- Martin Fowler — Continuous Integration
- Martin Fowler — Test Data
- Martin Fowler — Test Pyramid
- OpenTelemetry — Documentation
- OpenTelemetry — Sampling
- Pact — Consumer-driven contracts
- Prometheus — Naming and cardinality
- Team Topologies
- Testcontainers
- The Twelve-Factor App — Config
- Tom Wilkie — RED method
B11 · Производительность и стоимость#
- AWS Well-Architected — Cost Optimization Pillar
- Brendan Gregg — Flame Graphs
- Brendan Gregg — Linux Performance Tools
- Brendan Gregg — Systems Performance
- Brendan Gregg — USE Method
- Dean & Barroso — The Tail at Scale (CACM 2013)
- FinOps Foundation — Framework
- Gil Tene — How NOT to Measure Latency
- Go — Guide to the Go Garbage Collector
- Google SRE Book, гл. 21 «Handling Overload»
- Google SRE Workbook — Canarying и нагрузочные проверки
- Google-Wide Profiling (IEEE Micro 2010)
- GraphQL — DataLoader
- High Performance Browser Networking
- HikariCP — About Pool Sizing
- Java — HotSpot Garbage Collection Tuning Guide
- Jeff Dean — Designs, Lessons and Advice from Building Large Distributed Systems
- k6 — Load testing guides
- Kleppmann, DDIA, гл. 1
- Latency Numbers Every Programmer Should Know (интерактивно)
- Neil Gunther — Universal Scalability Law
- PgBouncer — Documentation
- Prime Video Tech Blog
- Rob Pike — Concurrency is not Parallelism
B12 · Кейсы#
- Alex Xu — System Design Interview, vol. 1
- Alex Xu — System Design Interview, vol. 2
- Apple — Sending notification requests to APNs
- AWS SaaS Lens — Well-Architected
- Cloudflare — Waiting Room
- Cloudflare — What is rate limiting?
- Cormode, Muthukrishnan — Count-Min Sketch
- DASH Industry Forum
- Elasticsearch — Suggesters
- Firebase Cloud Messaging — Documentation
- Flajolet et al. — HyperLogLog (2007)
- How Discord Stores Trillions of Messages
- Introduction to Information Retrieval — Dictionaries and tolerant retrieval
- Kleppmann, DDIA, гл. 7
- microservices.io — Saga
- Microsoft — Multi-tenant SaaS database tenancy patterns
- Netflix Tech Blog
- Netflix — Per-Title Encode Optimization
- PostGIS — Spatial indexing
- PostgreSQL — Row Security Policies
- PostgreSQL — SELECT FOR UPDATE и SKIP LOCKED
- Prime Video Tech Blog
- Redis — Geospatial indexes
- Redis — HyperLogLog
- Redis — Sorted sets
- RFC 6585 — 429 Too Many Requests
- RFC 8030 — Web Push
- RFC 8216 — HTTP Live Streaming
- RFC 9110 — Redirection 3xx
- Stripe — Idempotent requests
- Stripe — Payment Intents lifecycle
- Stripe — Scaling your API with rate limiters
- Twitter Engineering — Timelines at Scale
- Uber H3 — Hexagonal hierarchical spatial index
Всего внешних источников: 396 (без повторов внутри блока). Источники шага проектирования — в 00-workflow.md, видео — в карточках.