Arquitetura de software · 29 temas · 173 min de leitura
Arquitetura de software, com diagramas
Os conceitos de design de sistemas que aparecem em todo projeto e entrevista: escala, dados, comunicação, confiabilidade e segurança — com diagramas, trocas e fontes oficiais.
TriBora desenhar sistemas que aguentam milhões de acessos? Comece pelo cache e pelo balanceador.
Escala e desempenho
- 5 min de leitura Balanceador de carga Distribui as requisições entre vários servidores para aguentar mais tráfego e continuar no ar quando um deles cai.
- 6 min de leitura Cache: estratégias e armadilhas Guardar resultados caros perto de quem usa: menos latência e menos carga no banco — desde que se resolva quando o dado muda.
- 4 min de leitura CDN: conteúdo perto do usuário Uma rede de servidores espalhados pelo mundo guarda cópias de arquivos e páginas, entregando do ponto mais próximo de quem acessa.
- 7 min de leitura Containers e Kubernetes: o que são e quando valem a pena Containers empacotam a aplicação com suas dependências; o Kubernetes decide onde rodá-los, reinicia o que cai e escala conforme a carga.
- 5 min de leitura Bloom filters: “com certeza não está” em poucos bytes Uma estrutura probabilística que responde se um item talvez esteja num conjunto — sem falsos negativos — usando uma fração da memória.
Dados
- 6 min de leitura SQL x NoSQL: como escolher o banco Bancos relacionais garantem consistência e consultas flexíveis; os NoSQL trocam parte disso por escala e modelos de dados específicos.
- 6 min de leitura Replicação e sharding Replicar copia os dados para ter leitura extra e tolerância a falhas; fazer sharding divide os dados entre máquinas para escalar a escrita.
- 5 min de leitura Teorema CAP na prática Quando a rede se parte entre servidores, um sistema distribuído precisa escolher entre responder com dados possivelmente velhos ou recusar até se reconciliar.
- 5 min de leitura Hashing consistente Distribuir chaves entre servidores de modo que adicionar ou remover um servidor mova só uma pequena parte dos dados.
- 7 min de leitura Busca de texto: índice invertido, relevância e busca híbrida Como mecanismos de busca encontram documentos em milissegundos: tokenização, índice invertido, ranking por relevância e a combinação com vetores.
- 6 min de leitura Armazenamento de objetos: arquivos, imagens e vídeos em escala Por que fotos e vídeos não vão no banco de dados: buckets, URLs assinadas para upload direto, CDN na frente e classes de armazenamento por custo.
- 5 min de leitura IDs únicos em sistemas distribuídos: UUID, Snowflake e ULID Gerar identificadores sem um contador central: aleatórios, ordenados pelo tempo, curtos — e o impacto de cada escolha no banco.
Comunicação
- 6 min de leitura Filas e mensageria (pub/sub) Em vez de chamar outro serviço e esperar, publique uma mensagem: quem precisa processa no seu ritmo, e picos viram fila em vez de erro.
- 6 min de leitura APIs: REST, GraphQL ou gRPC Três formas de expor uma API, com trocas diferentes entre simplicidade, flexibilidade para o cliente e desempenho entre serviços.
- 5 min de leitura API Gateway: a porta de entrada dos serviços Um ponto único que recebe as chamadas dos clientes e cuida de roteamento, autenticação, limites e agregação antes de chegar aos serviços internos.
- 7 min de leitura Arquitetura orientada a eventos, CQRS e sagas Serviços que reagem a eventos, modelos separados para escrita e leitura, e transações longas feitas de passos com compensação.
- 5 min de leitura Tempo real: polling, SSE ou WebSockets Três formas de o servidor avisar o cliente sobre novidades — de perguntar de tempos em tempos a manter um canal aberto nos dois sentidos.
- 6 min de leitura DNS: como um nome vira um endereço IP O caminho de uma consulta DNS — do cache do navegador ao servidor autoritativo — e por que TTL, registros e propagação importam em produção.
- 6 min de leitura Service mesh: rede entre microsserviços com sidecars Uma camada de proxies ao lado de cada serviço cuida de mTLS, retries, timeouts e métricas — sem mudar o código das aplicações.
Confiabilidade e segurança
- 5 min de leitura Rate limiting: limitar requisições Limitar quantas requisições cada cliente pode fazer protege a API de abusos e de picos que derrubariam todo mundo.
- 5 min de leitura Idempotência, retries e backoff Redes falham: repetir uma requisição é necessário, mas só é seguro se a operação puder ser repetida sem efeito duplicado.
- 5 min de leitura Observabilidade: logs, métricas e traces Entender o que o sistema está fazendo em produção — e por que — usando três sinais complementares e alertas que importam.
- 6 min de leitura Autenticação: OAuth 2.0, OpenID Connect e JWT Como um app obtém acesso em nome do usuário sem ver a senha dele, e como tokens carregam essa autorização de forma verificável.
- 7 min de leitura CI/CD e estratégias de deploy: blue-green, canário e feature flags Integrar e testar cada mudança automaticamente e levá-la à produção com pouco risco — e voltar atrás rápido quando algo dá errado.
Estrutura do código
- 6 min de leitura Monólito ou microsserviços Microsserviços dão independência a times e partes do sistema, ao custo de uma complexidade operacional que muitas equipes não precisam ter.
- 7 min de leitura Arquitetura de apps mobile: camadas, MVVM e Kotlin Multiplatform Como organizar um app Android ou iOS em camadas de interface, domínio e dados — e o que dá para compartilhar entre as duas plataformas.
Estudos de caso
- 8 min de leitura Estudo de caso: projetando um encurtador de URL Um clássico de entrevistas de design de sistemas: gerar códigos curtos, redirecionar rápido e aguentar muito mais leituras que escritas.
- 8 min de leitura Estudo de caso: projetando um app de chat Mensagens em tempo real, entrega garantida, ordem dentro da conversa, status de lida e notificações para quem está offline.
- 8 min de leitura Estudo de caso: o feed de uma rede social Montar a linha do tempo de milhões de pessoas: distribuir na escrita (fan-out) ou na leitura, e o caso especial das celebridades.
Cada tema traz referências a artigos científicos, especificações e documentação oficial. Encontrou um erro? Escreva pela página de contato.