Una scelta popolare di architettura di alto livello nel programma moderno è un sistema di microservizi basato su REST. Ciò presenta numerosi vantaggi come accoppiamento lento, facile riutilizzo, limitazione limitata alle tecnologie utilizzabili, elevata scalabilità, ecc.
Ma uno dei problemi che prevedo in tale architettura è la scarsa visibilità su quali siano le dipendenze di un'applicazione. Ad esempio, supponiamo che io abbia un'applicazione che utilizza un set di chiamate REST su base giornaliera. Questa applicazione utilizza anche una seconda serie di chiamate REST, ma solo una volta al trimestre. Se dovessi scansionare i registri della scorsa settimana vedrei tutti i cal 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 sono le dipendenze di un'architettura liberamente accoppiata?