POTHIEDU Não Decore a Resposta. Entenda o Caminho

Pós Arquitetura De Software

Pós Arquitetura De Software

O que acontece depois que o sistema é entregue

A maioria das equipes acha que a arquitetura termina quando o código vai para produção. Não termina. Ela só muda de natureza. O que eu chamo de pós arquitetura de software é o conjunto de decisões, ajustes e correções que acontecem nos meses seguintes à entrega, quando o sistema começa a mostrar seu verdadeiro comportamento sob carga real. Vou começar direto com o problema mais comum. Depois de um launch de microserviços, comecei a ver latência subindo progressivamente nos serviços que, isoladamente, pareciam saudáveis. O gateway passava de 120ms para 890ms em duas semanas, sem mudanças no código. A causa? Schema registry sem validação rigorosa. Uma biblioteca nova tinha atualizado o default de um campo de String para nullable sem avisar ninguém. O consumidor mais antigo não esperava null naquela posição, e os eventos entravam em retry loops infinitos, travando as filas inteiras. A solução foi colocar um schema validation gate no CI e um contract test que quebra o build se houver breaking change entre versão.

Avaliação contínua como parte do pós arquitetura de software

O trabalho pós-arquitetura não é só resolver bugs. É o ciclo de medição, interpretação e ajuste que sustenta o sistema vivo. Comece definindo métricas que realmente importam. Latência p99 por endpoint. Taxa de erro por versão. Tempo médio de recuperação. Throughput por serviço. Se você não mede isso rotineiramente, está achando que tudo funciona bem, e isso é perigoso. Definição estrutural: pós arquitetura de software é a fase que engloba monitoramento contínuo, ajuste de capacidade, evolução de contratos, refatoração orientada por dados de produção, gestão de débito técnico e planejamento de decomissionamento. Não é um momento. É um estado permanente até o sistema ser desligado. O erro que vejo mais frequentemente é achar que uma decisão arquitetural tomada antes do launch é imutável. Já vi times seguirem padrões de partição de banco por dois anos porque estavam comprometidos com a escolha inicial, enquanto os dados de produção mostravam claramente que uma abordagem completamente diferente seria muito mais eficiente. Eles gastaram cerca de 40 horas refatorando para corrigir. O custo da rigidez arquitetural foi muito maior do que o ajuste precoce teria sido.

Uma coisa que quase ninguém conta: arquitetura declarada e arquitetura real são coisas diferentes. A documentação pode mostrar uma topologia limpa de microsserviços, mas o sistema real pode estar dependente de acoplamentos implícitos que surgiram gradualmente. Chamei isso de "architectural drift" na primeira vez que percebi. A diferença entre o que está no diagrama e o que existe no código cresce exponencialmente se não houver revisão periódica.

Pós-graduação Arquitetura De Software - RETOEDU
Pós-graduação Arquitetura De Software - RETOEDU

Como eu estruturo o pós-arquitetura na prática

Cada semana tem um slot fixo de 90 minutos para review arquitetural. Não é reunião social. É análise de dados. Pegamos os logs dos últimos sete dias, olhamos os serviços com maior variação de latência, identificamos padrões de chamada que não fazem sentido, e anotamos candidatos a refatoração. Isso gera em média três a cinco itens de trabalho por ciclo. Nada heroico. Apenas manutenção arquitetural sistemática. Para governança de contratos entre serviços, mantenho um registry central de schemas com versionamento semântico. Qualquer mudança que quebre compatibilidade exige aprovação de pelo menos dois owners de serviço. O processo leva cerca de 15 minutos se estiver bem documentado, e três horas se estiver bagunçado. A diferença é quase sempre qualidade da documentação. Quando um serviço atinge 80% da capacidade máxima em picos de uso, eu aciono o plano de escala. Não espero o 90%. Respostas tardias geram chamadas de emergência no meio da noite, e elas nunca têm bom resultado. O ajuste costuma envolver aumento de réplicas, otimização de queries, ou reavaliação da partição de dados. Já resolvi um caso onde a query de um serviço consumia 3 segundos por chamado porque não havia índice composto adequado. Adicionar os índices levou 12 minutos e reduziu a latência para 45ms.

Onde o pós-arquitetura falha

Monitoramento excessivo sem ação é uma armadilha real. Times que coletam métricas de tudo sem priorização gastam horas analisando dashboards cheios de dados irrelevantes. A recomendação prática: meça apenas o que você usaria para decidir entre refatorar, escalar ou ignorar. Se uma métrica não influencia nenhuma decisão, ela é ruído, não informação. Dependência de documentação como fonte da verdade é outro problema. Documentação fica desatualizada rapidamente. O código é a única fonte confiável. Se há divergência entre os dois, o código ganha. Por isso revisões periódicas que comparam implementação com diagramas são essenciais. Há cenários onde o pós-arquitetura convencional não funciona. Sistemas legados monolíticos com acoplamento forte e testes inexistentes não respondem bem a iterações incrementais de evolução arquitetural. Nesses casos, a estratégia de strangler fig é mais viável do que tentativa de refatoração gradual em cima do bloco inteiro. Você isola funcionalidades uma a uma, reescreve como serviços independentes, e vai desligando o legado por partes. É mais lento no início, mas evita o risco de quebrar tudo de uma vez.

O que funciona na prática é tratar a arquitetura como hipotética, não como dogma. Toda decisão é uma aposta baseada nas informações disponíveis no momento. Quando dados de produção contradizem a aposta, a aposta errada é descartada, não a evidência. Isso exige humildade técnica e infraestrutura que permita mudar com relativa segurança, o que significa pipelines de deploy confiáveis e feature flags bem implementados. Sem isso, a teoria é bonita, mas a execução vira caos.

Pós-graduação Arquitetura De Software - RETOEDU
Pós-graduação Arquitetura De Software - RETOEDU