Pular para conteúdo

Lista de leitura

Os livros, artigos, blogs e cursos por trás deste curso. Você não precisa ler tudo: cada item tem uma linha sobre por que vale o seu tempo e a aula que ele apoia, para você escolher o que combina com o assunto que está estudando. Comece pelos cinco primeiros. A maior parte do material está em inglês, a língua de trabalho da área.

Comece aqui: os cinco primeiros

  1. Designing Data-Intensive Applications (Kleppmann e Riccomini) — os capítulos sobre replicação, particionamento, transações e consistência. A base das aulas 3, 6 e 8.
  2. System Design Interview, vol. 1 (Alex Xu) — leia um capítulo por semana junto com os estudos de caso para ver o formato da entrevista de ponta a ponta.
  3. "The Tail at Scale" (Dean e Barroso, 2013) — seis páginas que explicam por que o p99 importa mais que a média. Leia com a Aula 2 · Percentis.
  4. Site Reliability Engineering, capítulos sobre SLOs, monitoramento e sobrecarga (gratuito online) — a metade "rodando em produção" do system design.
  5. Os artigos da Amazon Builders' Library sobre timeouts, retries, backoff e jitter — curtos, práticos e exatamente o que a Aula 10 e o Hands-on 9 transformam em código.

Livros

Livro Autores Por que ler Apoia
Designing Data-Intensive Applications, 2ª ed. Martin Kleppmann, Chris Riccomini A explicação mais clara de replicação, particionamento, transações, consistência e streams, a partir dos princípios 3, 6, 8
System Design Interview, vol. 1 e vol. 2 Alex Xu (vol. 2 com Sahn Lam) Problemas clássicos de entrevista resolvidos passo a passo, com estimativas e diagramas 1, 15
Site Reliability Engineering e The Site Reliability Workbook Google (Beyer, Jones, Petoff, Murphy, orgs.) SLOs, orçamentos de erros, alertas, sobrecarga e resposta a incidentes como praticados no Google; gratuitos online 9, 10
Release It!, 2ª ed. Michael T. Nygard Padrões de estabilidade (timeouts, circuit breakers, bulkheads) e antipadrões, contados por meio de quedas reais 9
Building Microservices, 2ª ed. Sam Newman Quando dividir um monolito, fronteiras de serviços, estilos de comunicação e os custos dos microsserviços 5
Fundamentals of Software Architecture Mark Richards, Neal Ford Características de arquitetura ("-idades"), estilos e como raciocinar sobre trade-offs 1, 5
Software Architecture: The Hard Parts Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani Decompor serviços e dados, transações distribuídas e sagas, tudo como análise de trade-offs 5, 8
Understanding Distributed Systems Roberto Vitillo Um passeio curto e acessível por comunicação, coordenação, escalabilidade e resiliência 3, 4
Database Internals Alex Petrov Como os motores de armazenamento (B-trees, LSM-trees) e os bancos distribuídos funcionam por dentro 6
Systems Performance, 2ª ed. Brendan Gregg Metodologia de desempenho (método USE), ferramentas de observabilidade e profiling no Linux 14
Observability Engineering Charity Majors, Liz Fong-Jones, George Miranda Por que eventos de alta cardinalidade e traces valem mais que dashboards de médias; alertas baseados em SLO 10
Kubernetes: Up and Running Brendan Burns, Joe Beda, Kelsey Hightower, Lachlan Evenson Os objetos centrais do Kubernetes explicados por quem o construiu 12
AI Engineering Chip Huyen Construir aplicações sobre modelos de fundação: avaliação, RAG, agentes, latência e custo 13
Cracking the Coding Interview, 6ª ed. Gayle Laakmann McDowell O processo de entrevistas em geral; seu capítulo sobre escalabilidade inspirou os princípios de "como responder" Apoio › Entrevista

Artigos clássicos

Artigos são mais curtos que livros e muitas vezes mais claros: foram escritos para convencer especialistas céticos. Leia primeiro o resumo, a introdução e as figuras.

Artigo Autores, veículo, ano Por que ler Apoia
Time, Clocks, and the Ordering of Events in a Distributed System Leslie Lamport, Communications of the ACM, 1978 Introduz a relação "aconteceu antes" e os relógios lógicos: por que "o que aconteceu primeiro" é difícil 3 · Tempo e relógios
Paxos Made Simple Leslie Lamport, ACM SIGACT News, 2001 O algoritmo de consenso por trás de décadas de sistemas, em poucas páginas 3 · Consenso
Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services Seth Gilbert, Nancy Lynch, ACM SIGACT News, 2002 A prova formal do teorema CAP que Eric Brewer conjecturou na sua palestra no PODC 2000 3 · CAP e PACELC
The Google File System Ghemawat, Gobioff, Leung, SOSP 2003 Projetar armazenamento para máquinas comuns que falham o tempo todo 6
MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean, Sanjay Ghemawat, OSDI 2004 O modelo de programação que tornou acessível o processamento em lote em grande escala 6 · Especializados
Bigtable: A Distributed Storage System for Structured Data Chang et al., OSDI 2006 O modelo de colunas largas por trás do HBase e do modelo de dados do Cassandra 6 · Modelos
The Chubby Lock Service for Loosely-Coupled Distributed Systems Mike Burrows, OSDI 2006 Locks de granularidade grossa e eleição de líder como serviço 5 · Trabalho assíncrono
Dynamo: Amazon's Highly Available Key-value Store DeCandia et al., SOSP 2007 (allthingsdistributed.com) Hashing consistente, quóruns, hinted handoff e relógios vetoriais num único sistema em produção 3, 6 · Particionamento
ZooKeeper: Wait-free Coordination for Internet-scale Systems Hunt, Konar, Junqueira, Reed, USENIX ATC 2010 Um serviço de coordenação do qual muitos sistemas (inclusive o Kafka antigo) dependiam 3 · Consenso
Kafka: a Distributed Messaging System for Log Processing Jay Kreps, Neha Narkhede, Jun Rao, NetDB 2011 O design original do broker baseado em log usado ao longo do curso 8 · Kafka
Spanner: Google's Globally-Distributed Database Corbett et al., OSDI 2012 Transações com consistência externa no planeta inteiro, usando o TrueTime 6 · Replicação, 3
Consistency Tradeoffs in Modern Distributed Database System Design Daniel Abadi, IEEE Computer, 2012 Introduz o PACELC: o trade-off entre latência e consistência que existe mesmo sem partições 3 · CAP e PACELC
The Tail at Scale Jeffrey Dean, Luiz André Barroso, Communications of the ACM, 2013 Por que a latência de cauda domina sistemas com fan-out, e técnicas como hedged requests 2 · Percentis
Scaling Memcache at Facebook Nishtala et al., NSDI 2013 Cache em escala enorme: leases contra stampedes, pools regionais, invalidação 7
TAO: Facebook's Distributed Data Store for the Social Graph Bronson et al., USENIX ATC 2013 Um cache de grafo otimizado para leitura na frente do MySQL, atendendo bilhões de leituras por segundo 7, 15
In Search of an Understandable Consensus Algorithm (Raft) Diego Ongaro, John Ousterhout, USENIX ATC 2014 (raft.github.io) Consenso projetado para ser entendido: eleição de líder e replicação do log 3 · Consenso
Large-scale Cluster Management at Google with Borg Verma et al., EuroSys 2015 O ancestral do Kubernetes: escalonamento, empacotamento e lições aprendidas 12 · Kubernetes
Attention Is All You Need Vaswani et al., NeurIPS 2017 A arquitetura transformer por trás dos LLMs de hoje; leia pelo contexto, não pela matemática 13
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks Lewis et al., NeurIPS 2020 O artigo que deu nome ao RAG: combinar um recuperador com um gerador 13 · RAG e memória
ReAct: Synergizing Reasoning and Acting in Language Models Yao et al., ICLR 2023 O loop raciocinar-agir-observar que a maioria dos frameworks de agentes implementa 13 · Agentes

Blogs de engenharia

Sistemas reais, quedas reais, trade-offs reais. Procure neles o assunto da semana.

Blog Por que ler Apoia
The Amazon Builders' Library Como a Amazon constrói e opera serviços: timeouts e retries, descarte de carga, cache, deploys 9, 12
AWS Architecture Blog Arquiteturas de referência e padrões na AWS 12
Google Cloud Architecture Center Arquiteturas de referência, inclusive para sistemas de IA e de dados 12, 13
Netflix Tech Blog Engenharia do caos, resiliência, entrega de vídeo e microsserviços em grande escala 9, 15
Meta Engineering Cache, infraestrutura de dados e confiabilidade na escala de bilhões de usuários 6, 7
Uber Engineering Indexação geoespacial, despacho em tempo real e grandes arquiteturas de microsserviços 15
Discord Engineering Guardar trilhões de mensagens, fan-out em tempo real, migrações de banco contadas em detalhe 6, 15
The Cloudflare Blog DNS, CDN, mitigação de DDoS e post-mortems honestos de quedas globais 4, 10
Stripe Engineering Idempotência, design de APIs e confiabilidade em pagamentos 5 · Integrações
Shopify Engineering Sobreviver a vendas relâmpago (Black Friday) com um monolito modular 5, 14
Slack Engineering Infraestrutura de mensagens em tempo real e relatos de incidentes 8, 10
Blog de Marc Brooker Ensaios curtos e rigorosos sobre retries, filas, latência de cauda e sistemas distribuídos 2, 9
Martin Fowler Padrões de sistemas distribuídos e de arquitetura corporativa, trade-offs de microsserviços 5, 8
Brendan Gregg Metodologia de desempenho, flame graphs e observabilidade no Linux 14
Jepsen Análises independentes do que os bancos distribuídos realmente garantem sob falhas 3 · Consistência
High Scalability Coleção antiga de estudos de caso de arquitetura 15
ByteByteGo Explicações visuais, voltadas a entrevistas, de temas de system design Apoio › Entrevista

Cursos e recursos gratuitos

Recurso Por que usar Apoia
MIT 6.5840 Distributed Systems Aulas, leituras de artigos e laboratórios (Raft, um armazenamento chave-valor particionado) de um dos melhores cursos de sistemas distribuídos 3
The System Design Primer Guia de estudo gratuito e organizado, com tópicos, flashcards e problemas resolvidos Apoio › Entrevista
AWS Well-Architected Framework Seis pilares e perguntas de revisão concretas para fazer a qualquer design 1, 12
Azure Architecture Center Catálogo de padrões de design em nuvem (retry, circuit breaker, CQRS, saga…) com diagramas claros 8, 9
Recursos de SRE do Google Os livros de SRE e artigos sobre SLOs e resposta a incidentes 9, 10
CNCF Landscape Mapa do ecossistema cloud-native: onde cada ferramenta se encaixa 12
Documentação do OpenTelemetry Conceitos e guias por linguagem para métricas, logs e traces 10 · OpenTelemetry
Documentação do Kubernetes A seção de conceitos é um excelente livro-texto gratuito 12 · Kubernetes
Latency numbers every programmer should know A tabela clássica por trás de toda estimativa 2 · Números, Referência › Números

Como ler um artigo em 30 minutos

Leia o título, o resumo e a conclusão; olhe todas as figuras e tabelas; depois leia a introdução e a seção de design. Pule os detalhes da avaliação na primeira passada. Escreva três linhas: o problema, a ideia central e o trade-off que os autores aceitaram. É essa terceira linha que você vai usar numa entrevista.