Una scelta di architettura di alto livello nel programma moderno è un sistema di microservizi basato su REST. Questo ha diversi vantaggi come accoppiamento lento, facile riutilizzo, restrizioni limitate su tecnologie che possono essere utilizzate, alta scalabilità, ecc.
Ma uno dei problemi che prevedo in una tale architettura è una scarsa visibilità su quali siano le dipendenze di un'applicazione. Ad esempio, supponiamo di avere un'applicazione che utilizza una serie di chiamate REST su base giornaliera. Questa applicazione utilizza anche una seconda serie di chiamate REST, ma solo una volta al trimestre. Se dovessi eseguire la scansione dei log per la scorsa settimana, vedrei tutti i dati giornalieri, ma probabilmente non vedrei le chiamate trimestrali. Quando arriva il momento di refactoring, le chiamate trimestrali sono ad alto rischio di rottura.
Quali modelli o strumenti possono essere utilizzati per ridurre questo rischio e fornire una maggiore visibilità su quali siano le dipendenze di un'architettura liberamente accoppiata?