Trilha progressiva · 140 aulas
System Design: do fundamento a Staff/Principal.
Aprenda a explicar como um sistema funciona, estimar sua capacidade, projetar seus estados e falhas, operá-lo e defender decisões sob restrições reais.
Comece aqui
Aulas
- Abrir aula
Aula 01 · 75–100 minutos
Pensar em sistemas antes de desenhar caixas
Aula introdutória de System Design: requisitos, fluxo, escala, qualidade e verificação.
- Abrir aula
Aula 02 · 80–100 minutos
Requisitos, qualidade e restrições: pare de projetar contra frases vagas
Aula de System Design sobre requisitos funcionais, atributos de qualidade e restrições.
Como estudar esta trilha
Uma decisão arquitetural atravessa o curso inteiro
Em cada macrotema, a mesma lente volta: requisitos → estimativa de capacidade → arquitetura e modelo de dados → gargalos e falhas → consistência → observabilidade → segurança → custo → trade-offs → evolução. A ordem é deliberada: só discutimos uma solução depois de entender o problema que ela resolve. Aulas publicadas são clicáveis. As demais registram a sequência planejada, sem simular conteúdo que ainda não existe.
01 · Pensamento de sistemas
Começar pelo problema, não pelas caixas
Requisitos, restrições, estimativas, métricas e ADRs: a linguagem para decidir antes de implementar.
- Métricas de capacidade: RPS, conexões, storage, bandwidth e crescimento90–110 minutos · Aula de System Design sobre como transformar requisitos em números de capacidade — RPS, payload, bandwidth, storage e projeção de crescimento.
- Latência, throughput, percentis, Lei de Little e AmdahlEm breve
- ADR: contexto, opções, decisão, consequências e revisãoEm breve
02 · Rede e ciclo de uma requisição
Entender cada salto entre cliente e serviço
Cliente-servidor, IP, portas, sockets, DNS, TCP, TLS, HTTP e conexões persistentes.
- Cliente-servidor, IP, portas, sockets e o modelo de camadasEm breve
- DNS, roteamento e o caminho até o originEm breve
- TCP, UDP, handshakes, congestionamento e conexões persistentesEm breve
- TLS, HTTPS, certificados e fronteiras de confiançaEm breve
- HTTP: request/response, keep-alive, compressão e serializaçãoEm breve
03 · APIs e comunicação
Projetar contratos que sobrevivem à evolução
REST, gRPC, WebSockets, contratos, versionamento, timeouts, retries, idempotência e pooling.
- REST, gRPC e WebSockets: modelo de interação e limitesEm breve
- Contratos, compatibilidade e evolução de APIsEm breve
- Timeouts, retries, backoff, jitter e idempotência de ponta a pontaEm breve
- JSON, Protobuf, Avro, compressão e custo de serializaçãoEm breve
- Connection pooling, thread pools e saturação de recursosEm breve
04 · Borda, distribuição de tráfego e CDN
Direcionar carga antes que ela alcance a aplicação
Reverse proxy, L4/L7, algoritmos de balanceamento, health checks, failover e cache na borda.
- Reverse proxy, API gateway e service discoveryEm breve
- Load balancing L4 e L7: round robin, least connections e pesosEm breve
- Sessões, sticky sessions, connection draining e health checksEm breve
- CDN, edge, cache HTTP, TTL e invalidaçãoEm breve
- DNS, anycast e global load balancingEm breve
05 · Dados relacionais e transações
Modelar invariantes antes de otimizar acesso
Modelo relacional, índices, planos, ACID, isolamento, locks, deadlocks, MVCC, WAL e replicação.
- Modelo de dados, invariantes, chaves e fonte de verdadeEm breve
- Índices B-tree e hash, índices compostos e seletividadeEm breve
- Query planning, joins e leitura orientada ao padrão de acessoEm breve
- ACID, isolamento, locks, deadlocks e MVCCEm breve
- WAL, checkpoints, réplicas de leitura e failoverEm breve
06 · Engines e bancos NoSQL
Escolher armazenamento pelo workload e pelas garantias
Buffer pool, LSM-tree, SSTables, compaction, Bloom filters e modelos chave-valor, documento, colunar, grafo, séries e busca.
- Buffer pool, páginas, cache e internals de engines de bancoEm breve
- LSM-tree, SSTables, compaction e amplificação de leitura e escritaEm breve
- Chave-valor, documento, wide-column, grafo, time-series e buscaEm breve
- PostgreSQL, DynamoDB, Cassandra, MongoDB, Redis e Elasticsearch por workloadEm breve
- Backup, restore, retenção, arquivamento e testes de recuperaçãoEm breve
07 · Cache
Acelerar leituras sem destruir a verdade dos dados
Cache-aside, read/write-through, TTL, invalidação, evicção, consistência e falhas características.
- Quando cachear — e quando não cachearEm breve
- Cache-aside, read-through, write-through e write-backEm breve
- TTL, LRU, LFU, warming e cache multinívelEm breve
- Invalidação, consistência e dados obsoletosEm breve
- Stampede, penetration, avalanche, hot keys e mitigaçãoEm breve
08 · Storage e objetos em escala
Guardar bytes pelo custo, durabilidade e padrão de acesso
HDD, SSD, NVMe, armazenamento de bloco, arquivo e objeto, replicação, erasure coding e tiers.
- HDD, SSD, NVMe e o custo físico de I/OEm breve
- Block, file e object storage: semântica, casos de uso e limitesEm breve
- Replicação, erasure coding, compressão e deduplicaçãoEm breve
- Dados quentes, frios, arquivamento e políticas de ciclo de vidaEm breve
- Upload e distribuição de arquivos grandes com segurança e recuperaçãoEm breve
09 · Mensageria e event-driven
Separar produtores e consumidores sem perder controle
Queues, pub/sub, streams, Kafka, grupos, partições, offsets, retenção, ordenação, DLQ e backpressure.
- Queue, pub/sub e event stream: semântica e escolhaEm breve
- Kafka: tópicos, partições, consumer groups, offsets e retençãoEm breve
- Entrega, ordem, duplicatas, replay e poison messagesEm breve
- Retry queues, DLQ, backpressure e load sheddingEm breve
- Kafka, RabbitMQ e filas gerenciadas: decisão orientada ao problemaEm breve
10 · Consistência e transações distribuídas
Definir exatamente quais fatos podem divergir e por quanto tempo
Outbox, inbox, Sagas, CDC, CQRS, event sourcing, consistência de sessão e experiência do usuário.
- At-most-once, at-least-once, exactly-once e idempotência práticaEm breve
- Outbox e inbox: manter banco e mensageria consistentesEm breve
- Sagas: coreografia, orquestração e ações compensatóriasEm breve
- CDC, CQRS e event sourcing: poder, custo e fronteirasEm breve
- Consistência forte, eventual e de sessão na experiência do usuárioEm breve
11 · Sistemas distribuídos
Raciocinar sobre falhas parciais, tempo e consenso
CAP, relógios, causalidade, linearizabilidade, quórum, eleição de líder, Raft/Paxos, split brain e fencing tokens.
- Estado distribuído, falhas parciais e as implicações de CAPEm breve
- Relógios físicos, Lamport, vector clocks, causalidade e ordenaçãoEm breve
- Linearizabilidade, consistência sequencial e garantias de sessãoEm breve
- Quórum, eleição de líder e consenso com Raft e PaxosEm breve
- Split brain, locks distribuídos e fencing tokensEm breve
12 · Escalabilidade
Encontrar o gargalo antes de adicionar máquinas
Escala vertical/horizontal, statelessness, replicação, particionamento, hashing, fan-out/fan-in, hot partitions e async work.
- Escala vertical, horizontal e arquitetura statelessEm breve
- Read scaling, write scaling, réplicas e limites de coordenaçãoEm breve
- Particionamento, sharding, consistent hashing e rebalançoEm breve
- Hot partitions, hot keys, locality, fan-out e fan-inEm breve
- Work queues, batching e processamento assíncrono de capacidade variávelEm breve
13 · Resiliência
Projetar o comportamento degradado, não só o caminho feliz
Isolamento, circuit breaker, bulkhead, rate limiting, failover, degradação e análise de cenários.
- Timeout, retry, backoff e jitter revisados como política de sistemaEm breve
- Circuit breaker, bulkhead e isolamento de dependênciasEm breve
- Rate limiting: token bucket, leaky bucket, quotas e abusoEm breve
- Graceful degradation, load shedding e prioridades de produtoEm breve
- E se Redis, banco, Kafka ou uma região falharem?Em breve
14 · Confiabilidade e recuperação
Transformar promessas de disponibilidade em planos testáveis
SLI, SLO, SLA, error budget, MTBF, MTTR, RTO, RPO, multi-AZ, multi-region e disaster recovery.
- SLI, SLO, SLA e error budgetsEm breve
- Os noves: disponibilidade, MTBF, MTTR e impacto de downtimeEm breve
- RTO, RPO, backup, restore e disaster recoveryEm breve
- Multi-AZ, active/passive, active/active e failover regionalEm breve
- Chaos engineering e testes de recuperação como evidênciaEm breve
15 · Observabilidade e performance
Operar com evidência e explicar o p99
Logs, métricas, traces, RED, USE, golden signals, profiling, GC, contenção, I/O, redes e teoria de filas.
- Logs estruturados, correlation IDs e trilhas de auditoriaEm breve
- Métricas, RED, USE, golden signals, dashboards e alertasEm breve
- Distributed tracing, sampling e investigação de um p99 degradadoEm breve
- CPU, memória, GC, locks, thread pools e async I/OEm breve
- Batching, compressão, rede, disk I/O, NUMA e queueing theoryEm breve
16 · Segurança e privacidade
Fazer das garantias de segurança parte do desenho
Identidade, autorização, criptografia, segredos, segmentação, zero trust, DDoS, auditoria, privacidade e compliance.
- Threat modeling baseado no fluxo e nas fronteiras de confiançaEm breve
- OAuth, OIDC, sessões, JWT, API keys e autorização RBAC/ABACEm breve
- TLS, mTLS, criptografia em repouso e gestão de chaves e segredosEm breve
- Least privilege, segmentação de rede, zero trust e auditoriaEm breve
- DDoS, rate limiting, privacidade, residência de dados e complianceEm breve
17 · Serviços, cloud e Kubernetes
Escolher a forma de operar de acordo com o problema e a organização
Monólito, modular monolith, microservices, DDD, cloud independente de fornecedor, containers e Kubernetes.
- Monólito, modular monolith e microservices: fronteiras e custo distribuídoEm breve
- DDD, bounded contexts, ownership de dados e dependências entre serviçosEm breve
- Comunicação síncrona, assíncrona, service mesh e propagação de falhasEm breve
- Cloud: compute, rede, IAM, dados, filas e serviços gerenciados sem vendor lock-in mentalEm breve
- Containers e Kubernetes: pods, deployments, services, ingress, state e autoscalingEm breve
18 · Evolução e padrões avançados
Mudar sistemas vivos com risco controlado
Strangler, adapters, anti-corruption layer, sidecars, schema evolution, migrações, rollouts e plataformas.
- Strangler fig, adapters e anti-corruption layersEm breve
- Sidecar, ambassador e padrões de plataformaEm breve
- Evolução de schema, contratos e migrações de dados sem downtimeEm breve
- Feature flags, canary, blue-green, rollback e roll-forwardEm breve
- Custo, FinOps, developer experience e guardrails arquiteturaisEm breve
19 · Sistemas reais
Compor os componentes sob requisitos conflitantes
Casos crescentes que obrigam a estimar, desenhar, medir, falhar e justificar — não apenas nomear tecnologias.
- Encurtador de URL e Pastebin: chaves, redirecionamento, expiração e abusoEm breve
- Upload e Dropbox: objetos, metadados, sincronização e conflitosEm breve
- Chat e notificações: conexões, presença, ordem, entrega e fan-outEm breve
- Feed, busca e autocomplete: ranking, índice, cache e consistênciaEm breve
- Pagamentos, agendamento e job scheduler: invariantes, concorrência e recuperaçãoEm breve
20 · Laboratório de sistemas reais I
Projetar produtos de leitura, escrita e distribuição
Cada caso aplica requisitos, estimativas, modelo de dados, APIs, gargalos, falhas, telemetria, segurança, custo e ADR.
- Caso: URL shortener global — geração de chaves, redirecionamento, expiração e abusoEm breve
- Caso: Pastebin — retenção, privacidade, leitura em pico e custos de storageEm breve
- Caso: rate limiter distribuído — precisão, consistência e hot keysEm breve
- Caso: API gateway — autenticação, quotas, roteamento e observabilidadeEm breve
- Caso: web crawler — descoberta, deduplicação, politeness e filas de trabalhoEm breve
21 · Laboratório de sistemas reais II
Projetar comunicação e processamento assíncrono
Conexões persistentes, entrega, ordem, presença, fan-out, retentativas, notificações e recuperação.
- Caso: chat em tempo real — WebSockets, presença, ordem e entregaEm breve
- Caso: sistema de notificações — preferências, canais, deduplicação e retriesEm breve
- Caso: job scheduler — agendamento, leases, concorrência e execução perdidaEm breve
- Caso: e-commerce — catálogo, carrinho, estoque e experiência de checkoutEm breve
- Caso: pagamentos — invariantes, idempotência, ledger e reconciliaçãoEm breve
22 · Laboratório de sistemas reais III
Projetar descoberta, conteúdo e colaboração
Índices, ranking, cache, sincronização, conflitos e compromissos de consistência visíveis ao usuário.
- Caso: autocomplete — índice, ranking, atualização e orçamento de latênciaEm breve
- Caso: busca — crawling, indexação, serving e relevânciaEm breve
- Caso: news feed — fan-out, ranking, cache e consistênciaEm breve
- Caso: compartilhamento de arquivos — upload, sincronização, versões e conflitosEm breve
- Caso: Google Docs — colaboração, presença, CRDT/OT e recuperação de sessãoEm breve
23 · Laboratório de plataformas de mídia e mobilidade
Compor escala, baixa latência e distribuição global
Streaming, redes sociais, localização e recomendação revelam limites diferentes dos componentes já estudados.
- Caso: Instagram — upload, feed, mídia, fan-out e moderaçãoEm breve
- Caso: WhatsApp — conexões globais, entrega, grupos e criptografia de ponta a pontaEm breve
- Caso: YouTube — ingestão, transcodificação, CDN e analyticsEm breve
- Caso: Netflix — catálogo, playback, recomendação e resiliência no edgeEm breve
- Caso: Uber — localização, matching, preço, eventos e consistência operacionalEm breve
24 · Laboratório de sistemas globais
Projetar dados e tráfego através de regiões
Multi-region exige escolher residência, replicação, failover, consistência, custos de transferência e processos de recuperação.
- Caso: Google Search — serving global, cache, shards e frescor do índiceEm breve
- Caso: Twitter/X — timeline, fan-out, hot users e consistênciaEm breve
- Caso: Spotify — catálogo, reprodução, recomendação e licenciamento regionalEm breve
- Caso: SaaS multi-tenant — isolamento, quotas, compliance e noisy neighborsEm breve
- Caso: plataforma global — residência de dados, geo-routing e disaster recoveryEm breve
25 · Operação, evolução e custo em sistemas vivos
Descobrir, corrigir e migrar sem interromper o negócio
O desenho só está completo quando é observável, economicamente sustentável e pode mudar com segurança.
- Investigação guiada: p99 de 100 ms para 2 s — hipóteses, sinais e causaEm breve
- Capacity review: de previsão de tráfego a plano de capacidade e custoEm breve
- Migration review: banco, eventos e contratos sem downtimeEm breve
- Incident review: dependência 10× mais lenta, backlog e degradação controladaEm breve
- DR game day: indisponibilidade regional, RTO/RPO e retorno ao serviçoEm breve
26 · Decisões avançadas e crítica arquitetural
Comparar alternativas pelo que elas custam e garantem
Treino explícito para explicar por que uma escolha se encaixa no contexto — e quando ela não se aplica.
- PostgreSQL vs DynamoDB: acesso, joins, throughput, operação e consistênciaEm breve
- Kafka vs RabbitMQ: retenção, replay, ordering, throughput e semânticaEm breve
- Monólito vs microservices: limites técnicos e organizacionaisEm breve
- Cache, réplica, shard ou fila: identificar o mecanismo que resolve o gargaloEm breve
- Criticar uma arquitetura: suposições ocultas, riscos e experimentos de validaçãoEm breve
27 · Comunicação e liderança de arquitetura
Fazer uma boa decisão ser entendida, operada e evoluída
RFCs, ADRs, diagramas, governança leve, plataformas, influência e alinhamento entre equipes.
- RFC e ADR para decisões com impacto multi-timeEm breve
- Diagramas de contexto, contêiner, sequência, dados e deployment como instrumentos de decisãoEm breve
- Princípios, guardrails e golden paths sem burocracia arquiteturalEm breve
- Arquitetura sociotécnica: ownership, interfaces de equipe e dependênciasEm breve
- Influência sem autoridade, revisão técnica e comunicação com liderançaEm breve
28 · Staff e Principal
Projetar e influenciar além de um serviço
Síntese: estratégia técnica, restrições organizacionais, riscos, compliance, migração e decisões globais defendidas com evidência.
- Escopo de decisão: Senior, Staff e Principal EngineerEm breve
- Estratégia técnica, roadmap, investimento e redução de riscoEm breve
- Capstone I: sistema global com 500M usuários, multi-region e baixa latênciaEm breve
- Capstone II: plataforma a 10M QPS, 99,99%, compliance e disaster recoveryEm breve
- Defesa arquitetural: entrevista Staff/Principal, trade-offs e plano de evoluçãoEm breve
Para consultar
Referências rápidas
- ReferênciaClassificar requisitosFluxo para separar comportamento esperado de restrições e qualidades. →
- ReferênciaDa necessidade à evidênciaDiagrama para transformar uma necessidade em uma decisão verificável. →
- ReferênciaEstimar capacidadeDiagrama para transformar demanda de negócio em RPS, bandwidth, storage e uma decisão de capacidade. →
- ReferênciaGlossário de system designTermos para discutir requisitos, limites, capacidade e trade-offs. →