Uma opção popular de arquitetura de alto nível no programa moderno é um sistema de microsserviços baseado em REST. Isso tem várias vantagens, como acoplamento flexível, reutilização fácil, restrição limitada de tecnologias que podem ser usadas, alta escalabilidade etc.
Mas um dos problemas que eu prevejo em uma arquitetura desse tipo é a pouca visibilidade de quais são as dependências de um aplicativo. Por exemplo, digamos que eu tenho um aplicativo que usa um conjunto de chamadas REST diariamente. Esse aplicativo também usa um segundo conjunto de chamadas REST, mas apenas uma vez por trimestre. Se eu fosse verificar os logs da semana passada, veria todas as chamadas diárias, mas provavelmente não veria as chamadas trimestrais. Quando chega a hora de refatorar, as chamadas trimestrais correm alto risco de interrupção.
Quais padrões ou ferramentas podem ser usados para reduzir esse risco e fornecer maior visibilidade sobre quais são as dependências de uma arquitetura fracamente acoplada?