Post

Simplicidade, robustez e custo: três critérios para a arquitetura

Se preferir começar por um resumo, peça um TL;DR ao Claude .

Uma arquitetura adequada equilibra complexidade operacional, tolerância a falhas e custo total em vez de seguir a tecnologia mais chamativa.

Microsserviços, serverless, Big Data e web-scale podem ser escolhas excelentes. O problema começa quando a tecnologia vira pré-requisito para parecer que um sistema é importante.

Antes de escolher uma arquitetura, eu tentaria equilibrar três critérios: simplicidade, robustez e custo. Eles não produzem a mesma resposta para todos os projetos, mas ajudam a tornar a decisão explícita.

Simplicidade reduz o custo de mudança

Complexidade acidental é aquela que não pertence ao problema original, mas foi criada pela solução. Cada serviço, fila, protocolo e integração adiciona contexto que alguém precisará entender, testar e operar.

Uma arquitetura simples reduz o tempo para uma pessoa nova contribuir, facilita diagnosticar uma falha e diminui a quantidade de lugares que precisam ser alterados para uma mudança pequena.

Antes de adicionar uma tecnologia, a pergunta que eu faria é: “isso torna o sistema fundamentalmente mais simples no longo prazo?”. Se a resposta depende de uma promessa difícil de medir, o custo já merece ser tratado como risco.

Robustez não é ausência de falhas

Um sistema robusto não é aquele que nunca falha. É aquele em que as falhas são compreendidas, detectadas e contidas.

Quanto mais componentes e conexões existem, mais combinações de falha aparecem. Um monólito bem testado e operado em uma máquina pode ter comportamento mais previsível do que dezenas de serviços distribuídos que a equipe não domina.

Eu observaria:

  • como uma dependência indisponível afeta o fluxo;
  • se uma operação pode ser repetida sem duplicar efeitos;
  • como o sistema retorna a um estado conhecido;
  • quem recebe o alerta e sabe agir;
  • qual parte continua funcionando durante a falha.

A infraestrutura também é uma decisão de produto

A nuvem é valiosa quando elasticidade, serviços gerenciados ou variabilidade de uso compensam o preço. Para uma carga estável e intensa, um servidor dedicado pode ser mais previsível. Colocation ou uma arquitetura híbrida também podem ser alternativas.

Não é uma decisão entre “nuvem” e “servidor próprio” para sempre. É uma comparação do custo total, incluindo operação, transferência de dados, disponibilidade, conhecimento da equipe e esforço para mudar de plataforma.

Um sistema simples tende a ser mais fácil de tornar robusto. Um sistema simples e robusto tende a custar menos para manter. A arquitetura que eu escolheria é a que equilibra os três critérios para o contexto real, mesmo quando não é a opção mais nova.