Penso che uno dei più grandi punti dolenti nel lavorare con i microservizi sia assicurarsi che le API siano ben documentate e che le API non cambino il loro comportamento senza influenzare le applicazioni a valle. Questo problema si amplifica quando si hanno molti servizi che sono interdipendenti l'uno con l'altro. Forse a quel punto hai sbagliato i microservizi, ma sto divagando.
Supponiamo di aver ereditato 20 microservizi appartenenti a team diversi e non esiste una documentazione chiara su quale applicazione utilizzi l'endpoint dell'API di altre applicazioni. C'è un modo prescritto per documentare questo? All'inizio ho pensato di analizzare gli endpoint di ogni applicazione e di aggiungerli a una tabella di database, quindi creare una relazione FK tra ogni applicazione e il percorso di un'applicazione su una tabella molti-a-molti (quasi tutte sono app per binari). Ma non sono sicuro che questo sia un buon modo per gestirlo, o sto reinventando la ruota qui.
In retrospettiva, questo potrebbe essere un modo non così negativo di documentare l'interazione delle applicazioni se si inizia con i microservizi da zero. Ciò imporrebbe semplicemente che venga mantenuta un'unica fonte di verità tramite l'uso di un database e che eventuali modifiche agli endpoint vengano eseguite nell'applicazione insieme al cambiamento nel database. Pensieri?