ACADEMY

System Design

Aprenda a raciocinar sobre sistemas escaláveis: do requisito à arquitetura, sempre entendendo os trade-offs.

Path, mascote do DevPath
Explorar tópicosBancos de dados e armazenamento
MAPA DE ESTUDOS

Escolha por onde continuar

14 conteúdos

Bancos de dados e armazenamento

Modele dados, preserve invariantes e escolha tecnologias pelos padrões de acesso e consistência.

4
01

SQL ou NoSQL? Como escolher o banco de dados

Compare bancos Relacionais (SQL) e NoSQL pelo modelo de dados, padrões de acesso, consistência, escala e operação — sem tratar a escolha como uma disputa entre tecnologias.

14 min de leitura
02

Transações e propriedades ACID

Entenda como transações preservam regras de negócio, o significado de atomicidade, consistência, isolamento e durabilidade e quais limites considerar na prática.

14 min de leitura
03

Lock otimista vs. pessimista: quando usar cada um?

Compare controle de concorrência otimista e pessimista com um exemplo de estoque, SQL e critérios práticos para escolher entre conflitos, retries e bloqueios.

12 min de leitura
04

Redis: quando usar e o que pode dar errado

Entenda como o Redis funciona, quando usá-lo como cache ou estrutura de dados compartilhada e quais trade-offs considerar em memória, consistência e durabilidade.

14 min de leitura

Mensageria e processamento assíncrono

Desacople fluxos, processe retries com segurança e entenda filas, tópicos e consumidores.

3
01

Idempotência: como repetir operações sem duplicar efeitos

Entenda como tornar APIs e consumidores seguros para retries usando chaves de idempotência, deduplicação, armazenamento de resultados e controle de concorrência.

14 min de leitura
02

Saga Pattern: transações distribuídas com compensação

Entenda como coordenar uma operação entre vários serviços com transações locais, compensações, coreografia, orquestração e consistência eventual.

16 min de leitura
03

Filas, tópicos e mensageria

Como desacoplar serviços e escolher entre Kafka, SQS, SNS e RabbitMQ.

12 min de leitura
Em breve

Conceitos de sistemas distribuídos

Construa o vocabulário para raciocinar sobre escala, disponibilidade, consistência e falhas.

4
01

O que é System Design?

Entenda o que é System Design, por que ele importa e como requisitos, escala e trade-offs orientam decisões de arquitetura de software.

10 min de leitura
02

Latência e throughput

Entenda como medir o tempo de resposta e a capacidade de um sistema, por que médias escondem problemas e como latência, throughput e saturação se relacionam.

14 min de leitura
03

Escalabilidade vertical e horizontal

Entenda como aumentar a capacidade de um sistema com máquinas maiores ou mais instâncias, quais trade-offs cada estratégia traz e como escolher entre elas.

15 min de leitura
04

Teorema CAP: consistência, disponibilidade e partições

Entenda o que o teorema CAP realmente afirma, como diferenciar sistemas CP e AP e quais trade-offs avaliar durante uma falha de rede.

12 min de leitura

Arquitetura na prática

Transforme requisitos em decisões de arquitetura por meio de desafios completos e trade-offs reais.

2
01

URL Shortener: desenhando um encurtador de URLs

Aprenda a projetar um encurtador de URLs, das estimativas e APIs à geração de códigos, cache, particionamento, segurança e evolução da arquitetura.

18 min de leitura
02

Desenhando um sistema de notificações

Prioridades, canais, provedores, retries, DLQ e observabilidade.

18 min de leitura
Em breve

Observabilidade, confiabilidade e operação

Prepare sistemas para produção com métricas, rastreamento, metas de confiabilidade e resposta a falhas.

1
01

Circuit Breaker: como conter falhas em cascata

Entenda como interromper chamadas a dependências instáveis, configurar os estados fechado, aberto e semiaberto e combinar Circuit Breaker com timeout, retry e fallback.

14 min de leitura