A tentativa de explicitar arquiteturas, frequentemente, leva a representações com “caixas e setas”, onde, geralmente, profissionais menos experientes dão mais relevância às “caixas”, enquanto aqueles com mais “cicatrizes” se mantêm atentos às setas.
A maior parte dos problemas que ajudamos a superar com sistemas em produção é consequência de implementação descuidada de integrações (as setas). Os mais experientes sabem, mesmo que instintivamente, disso. Quem está começando, por outro lado, costuma sofrer de um otimismo difícil de justificar na hora de implementar esses mecanismos.
É fato que, hoje em dia, mesmo sistemas mais simples são compostos por frontends inteligentes, APIs e backends carregados de lógica de negócio nem sempre estável. Ao mesmo tempo, “nenhum sistema é uma ilha” permanecendo em produção, útil, sem abastecer ou ser abastecido de dados externos.
Em configurações baseadas em (micros)serviços, a quantidade de integrações pode crescer de maneira exponencial. Com sorte, se estabelece uma estrutura hierárquica de camadas.
Não raro, entretanto, o que encontramos são sistemas que até começam simples, mas, com o tempo, materializam arquiteturas onde “todos conversam com todos”.
Integrações são a fonte principal de problemas no ambiente produtivo e cada ponto de integração representa uma ameaça para a estabilidade. O gargalo pode se manifestar em qualquer chamada HTTP, RPC, etc. Toda chamada ao banco de dados pode demorar tempo em demasia para responder. Instabilidades em um componente acabam refletindo instabilidades ainda maiores em outros componentes, de uma hora para outra, sistemas complexos “caem” por um “erro bobo”.
Boas arquiteturas são ótimas, primariamente, em pontos de integração. Se há um “calcanhar de Aquiles” para a performance e para a escalabilidade de sistemas, sem dúvidas são as integrações.
Em nossa experiência, explicitar as integrações é a primeira e mais importante atividade do arquiteto. Se for escolher por onde começar, comece por isso. Se só puder fazer uma coisa bem feita, que seja isso!
Excelente artigo Elemar Júnior, vou ler e reler algumas vezes mas a ideia principal já fixou na mente.