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.

Partida
Iniciante
Destino
Staff / Principal
Prática
Casos de sistema real

Comece aqui

Aulas

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.

  1. 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.
  2. Latência, throughput, percentis, Lei de Little e AmdahlEm breve
  3. 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.

  1. Cliente-servidor, IP, portas, sockets e o modelo de camadasEm breve
  2. DNS, roteamento e o caminho até o originEm breve
  3. TCP, UDP, handshakes, congestionamento e conexões persistentesEm breve
  4. TLS, HTTPS, certificados e fronteiras de confiançaEm breve
  5. 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.

  1. REST, gRPC e WebSockets: modelo de interação e limitesEm breve
  2. Contratos, compatibilidade e evolução de APIsEm breve
  3. Timeouts, retries, backoff, jitter e idempotência de ponta a pontaEm breve
  4. JSON, Protobuf, Avro, compressão e custo de serializaçãoEm breve
  5. 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.

  1. Reverse proxy, API gateway e service discoveryEm breve
  2. Load balancing L4 e L7: round robin, least connections e pesosEm breve
  3. Sessões, sticky sessions, connection draining e health checksEm breve
  4. CDN, edge, cache HTTP, TTL e invalidaçãoEm breve
  5. 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.

  1. Modelo de dados, invariantes, chaves e fonte de verdadeEm breve
  2. Índices B-tree e hash, índices compostos e seletividadeEm breve
  3. Query planning, joins e leitura orientada ao padrão de acessoEm breve
  4. ACID, isolamento, locks, deadlocks e MVCCEm breve
  5. 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.

  1. Buffer pool, páginas, cache e internals de engines de bancoEm breve
  2. LSM-tree, SSTables, compaction e amplificação de leitura e escritaEm breve
  3. Chave-valor, documento, wide-column, grafo, time-series e buscaEm breve
  4. PostgreSQL, DynamoDB, Cassandra, MongoDB, Redis e Elasticsearch por workloadEm breve
  5. 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.

  1. Quando cachear — e quando não cachearEm breve
  2. Cache-aside, read-through, write-through e write-backEm breve
  3. TTL, LRU, LFU, warming e cache multinívelEm breve
  4. Invalidação, consistência e dados obsoletosEm breve
  5. 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.

  1. HDD, SSD, NVMe e o custo físico de I/OEm breve
  2. Block, file e object storage: semântica, casos de uso e limitesEm breve
  3. Replicação, erasure coding, compressão e deduplicaçãoEm breve
  4. Dados quentes, frios, arquivamento e políticas de ciclo de vidaEm breve
  5. 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.

  1. Queue, pub/sub e event stream: semântica e escolhaEm breve
  2. Kafka: tópicos, partições, consumer groups, offsets e retençãoEm breve
  3. Entrega, ordem, duplicatas, replay e poison messagesEm breve
  4. Retry queues, DLQ, backpressure e load sheddingEm breve
  5. 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.

  1. At-most-once, at-least-once, exactly-once e idempotência práticaEm breve
  2. Outbox e inbox: manter banco e mensageria consistentesEm breve
  3. Sagas: coreografia, orquestração e ações compensatóriasEm breve
  4. CDC, CQRS e event sourcing: poder, custo e fronteirasEm breve
  5. 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.

  1. Estado distribuído, falhas parciais e as implicações de CAPEm breve
  2. Relógios físicos, Lamport, vector clocks, causalidade e ordenaçãoEm breve
  3. Linearizabilidade, consistência sequencial e garantias de sessãoEm breve
  4. Quórum, eleição de líder e consenso com Raft e PaxosEm breve
  5. 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.

  1. Escala vertical, horizontal e arquitetura statelessEm breve
  2. Read scaling, write scaling, réplicas e limites de coordenaçãoEm breve
  3. Particionamento, sharding, consistent hashing e rebalançoEm breve
  4. Hot partitions, hot keys, locality, fan-out e fan-inEm breve
  5. 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.

  1. Timeout, retry, backoff e jitter revisados como política de sistemaEm breve
  2. Circuit breaker, bulkhead e isolamento de dependênciasEm breve
  3. Rate limiting: token bucket, leaky bucket, quotas e abusoEm breve
  4. Graceful degradation, load shedding e prioridades de produtoEm breve
  5. 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.

  1. SLI, SLO, SLA e error budgetsEm breve
  2. Os noves: disponibilidade, MTBF, MTTR e impacto de downtimeEm breve
  3. RTO, RPO, backup, restore e disaster recoveryEm breve
  4. Multi-AZ, active/passive, active/active e failover regionalEm breve
  5. 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.

  1. Logs estruturados, correlation IDs e trilhas de auditoriaEm breve
  2. Métricas, RED, USE, golden signals, dashboards e alertasEm breve
  3. Distributed tracing, sampling e investigação de um p99 degradadoEm breve
  4. CPU, memória, GC, locks, thread pools e async I/OEm breve
  5. 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.

  1. Threat modeling baseado no fluxo e nas fronteiras de confiançaEm breve
  2. OAuth, OIDC, sessões, JWT, API keys e autorização RBAC/ABACEm breve
  3. TLS, mTLS, criptografia em repouso e gestão de chaves e segredosEm breve
  4. Least privilege, segmentação de rede, zero trust e auditoriaEm breve
  5. 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.

  1. Monólito, modular monolith e microservices: fronteiras e custo distribuídoEm breve
  2. DDD, bounded contexts, ownership de dados e dependências entre serviçosEm breve
  3. Comunicação síncrona, assíncrona, service mesh e propagação de falhasEm breve
  4. Cloud: compute, rede, IAM, dados, filas e serviços gerenciados sem vendor lock-in mentalEm breve
  5. 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.

  1. Strangler fig, adapters e anti-corruption layersEm breve
  2. Sidecar, ambassador e padrões de plataformaEm breve
  3. Evolução de schema, contratos e migrações de dados sem downtimeEm breve
  4. Feature flags, canary, blue-green, rollback e roll-forwardEm breve
  5. 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.

  1. Encurtador de URL e Pastebin: chaves, redirecionamento, expiração e abusoEm breve
  2. Upload e Dropbox: objetos, metadados, sincronização e conflitosEm breve
  3. Chat e notificações: conexões, presença, ordem, entrega e fan-outEm breve
  4. Feed, busca e autocomplete: ranking, índice, cache e consistênciaEm breve
  5. 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.

  1. Caso: URL shortener global — geração de chaves, redirecionamento, expiração e abusoEm breve
  2. Caso: Pastebin — retenção, privacidade, leitura em pico e custos de storageEm breve
  3. Caso: rate limiter distribuído — precisão, consistência e hot keysEm breve
  4. Caso: API gateway — autenticação, quotas, roteamento e observabilidadeEm breve
  5. 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.

  1. Caso: chat em tempo real — WebSockets, presença, ordem e entregaEm breve
  2. Caso: sistema de notificações — preferências, canais, deduplicação e retriesEm breve
  3. Caso: job scheduler — agendamento, leases, concorrência e execução perdidaEm breve
  4. Caso: e-commerce — catálogo, carrinho, estoque e experiência de checkoutEm breve
  5. 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.

  1. Caso: autocomplete — índice, ranking, atualização e orçamento de latênciaEm breve
  2. Caso: busca — crawling, indexação, serving e relevânciaEm breve
  3. Caso: news feed — fan-out, ranking, cache e consistênciaEm breve
  4. Caso: compartilhamento de arquivos — upload, sincronização, versões e conflitosEm breve
  5. 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.

  1. Caso: Instagram — upload, feed, mídia, fan-out e moderaçãoEm breve
  2. Caso: WhatsApp — conexões globais, entrega, grupos e criptografia de ponta a pontaEm breve
  3. Caso: YouTube — ingestão, transcodificação, CDN e analyticsEm breve
  4. Caso: Netflix — catálogo, playback, recomendação e resiliência no edgeEm breve
  5. 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.

  1. Caso: Google Search — serving global, cache, shards e frescor do índiceEm breve
  2. Caso: Twitter/X — timeline, fan-out, hot users e consistênciaEm breve
  3. Caso: Spotify — catálogo, reprodução, recomendação e licenciamento regionalEm breve
  4. Caso: SaaS multi-tenant — isolamento, quotas, compliance e noisy neighborsEm breve
  5. 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.

  1. Investigação guiada: p99 de 100 ms para 2 s — hipóteses, sinais e causaEm breve
  2. Capacity review: de previsão de tráfego a plano de capacidade e custoEm breve
  3. Migration review: banco, eventos e contratos sem downtimeEm breve
  4. Incident review: dependência 10× mais lenta, backlog e degradação controladaEm breve
  5. 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.

  1. PostgreSQL vs DynamoDB: acesso, joins, throughput, operação e consistênciaEm breve
  2. Kafka vs RabbitMQ: retenção, replay, ordering, throughput e semânticaEm breve
  3. Monólito vs microservices: limites técnicos e organizacionaisEm breve
  4. Cache, réplica, shard ou fila: identificar o mecanismo que resolve o gargaloEm breve
  5. 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.

  1. RFC e ADR para decisões com impacto multi-timeEm breve
  2. Diagramas de contexto, contêiner, sequência, dados e deployment como instrumentos de decisãoEm breve
  3. Princípios, guardrails e golden paths sem burocracia arquiteturalEm breve
  4. Arquitetura sociotécnica: ownership, interfaces de equipe e dependênciasEm breve
  5. 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.

  1. Escopo de decisão: Senior, Staff e Principal EngineerEm breve
  2. Estratégia técnica, roadmap, investimento e redução de riscoEm breve
  3. Capstone I: sistema global com 500M usuários, multi-region e baixa latênciaEm breve
  4. Capstone II: plataforma a 10M QPS, 99,99%, compliance e disaster recoveryEm breve
  5. Defesa arquitetural: entrevista Staff/Principal, trade-offs e plano de evoluçãoEm breve

Para consultar

Referências rápidas

140 aulas planejadas · 3 publicadas.