Guia
O que é System Design?
System Design é o processo de desenhar a arquitetura de um sistema de software para atender requisitos de escala, disponibilidade e desempenho — decidindo como componentes como servidores, bancos de dados, caches e filas se conectam e se comportam sob carga real.
Requisitos funcionais e não funcionais
Todo desenho de arquitetura parte de duas perguntas diferentes. Requisitos funcionais definem o que o sistema precisa fazer (ex.: "criar um pedido", "autenticar um usuário"). Requisitos não funcionais definem como ele precisa se comportar sob pressão: quantas requisições por segundo, qual latência máxima aceitável, qual taxa de erro tolerável, e o que acontece quando um componente falha.
Os quatro pilares
- Escalabilidade — a capacidade de atender mais carga adicionando réplicas (horizontal) ou aumentando a capacidade de uma instância (vertical).
- Disponibilidade — o sistema continuar respondendo mesmo quando parte dele falha, evitando pontos únicos de falha (single point of failure).
- Latência — quanto tempo uma requisição leva para ser respondida.
- Throughput — quantas requisições o sistema processa por unidade de tempo.
Latência e throughput costumam entrar em conflito com custo e complexidade — não existe arquitetura "perfeita", só arquiteturas com trade-offs diferentes para requisitos diferentes.
Componentes comuns de uma arquitetura
Na prática, a maioria dos sistemas distribuídos é composta por uma combinação destes blocos:
| Componente | Papel |
|---|---|
| Load Balancer | Distribui requisições entre múltiplas réplicas de um serviço. |
| API Gateway | Ponto de entrada único para roteamento, autenticação e agregação. |
| CDN | Serve conteúdo estático e cacheável perto do usuário. |
| Cache | Absorve leituras repetidas e reduz pressão no banco de dados. |
| Fila / Worker | Processa tarefas de forma assíncrona, desacoplando produtor e consumidor. |
| Banco SQL | Escala leitura por réplicas; escrita passa por uma primária. |
| Banco NoSQL | Escala leitura e escrita distribuindo dados em shards. |
Veja em detalhe como o Cache funciona e como ele é modelado em uma simulação real.
Como praticar
A forma mais rápida de internalizar esses conceitos não é decorá-los — é ver o efeito de cada decisão. O que acontece com a latência quando você tira um cache do caminho? O que acontece com a taxa de erro quando uma réplica cai sob carga sustentada?
O Simulador de System Design deixa você montar esses componentes por drag-and-drop, gerar carga real e observar latência, erros e saúde de cada peça ao vivo — direto no navegador, sem instalar nada.
Abrir o simulador