Estratégia de system design
O curso trata de como estruturar software para que ele continue funcionando quando usuários, dados e falhas aumentam. Começa pelos trade-offs e pela diferença entre requisitos funcionais e não funcionais. Depois passa pela estimativa no guardanapo e por SLI, SLO e SLA. Percorre cada camada de um stack Rails, do DNS e do Kamal Proxy ao Puma, PostgreSQL, cache e Solid Queue. As lições seguintes abordam modelagem de dados, escalabilidade, padrões de confiabilidade como health checks e circuit breakers e um roteiro de cinco passos para entrevistas de system design.
O que você vai aprender
- ✓Como pesar trade-offs como consistência contra disponibilidade e latência contra throughput
- ✓Estimar usuários, requisições por segundo, armazenamento e banda antes de projetar
- ✓O papel de cada camada numa arquitetura Rails, do DNS aos background jobs
- ✓Escolher entre armazenamento relacional e de documentos, JSONB, normalização e indexes
- ✓Escala vertical e horizontal, PgBouncer, réplicas de leitura e cache
- ✓Padrões de confiabilidade: redundância, health checks, degradação graciosa, circuit breakers e timeouts
O que é system design?
Qualquer desenvolvedor consegue construir uma aplicação que funciona no próprio laptop. Você digita bin/rails server, abre localhost:3000 e tudo roda. O banco responde em milissegundos. Só existe um usuário: você. Nada quebra.
Ler a aula completa grátis →Currículo
7 aulasO que é system design?
Define system design, separa requisitos funcionais dos não funcionais e apresenta os principais trade-offs e os estágios de crescimento.
Requisitos & restrições
Aborda perguntas de esclarecimento, estimativas de usuários, armazenamento e banda, e a diferença entre SLI, SLO e SLA.
Arquitetura de alto nível
Acompanha uma requisição por DNS, Kamal Proxy, Puma, PostgreSQL, cache e background jobs, explicando o papel de cada camada.
Modelagem de dados & decisões de armazenamento
Compara armazenamento relacional e de documentos e explica JSONB, normalização, desnormalização com counter cache e o custo dos indexes.
Estratégias de escalabilidade
Compara escala vertical e horizontal e mostra PgBouncer, réplicas de leitura, cache e a hora de dividir um monolito.
Confiabilidade & modos de falha
Mostra como achar pontos únicos de falha e usar health checks, deploys sem downtime, degradação, circuit breakers e timeouts.
A entrevista de system design & prática no mundo real
Apresenta um roteiro de cinco passos para problemas de system design e o aplica a um encurtador de URL e ao LMS.