Abbiamo 25 istanze dello stesso database che facilitano diversi impianti di produzione nella nostra organizzazione. Fondamentalmente, la posizione X usa la propria copia del database, la posizione Y usa la propria copia, ecc. Il database facilita la stessa funzionalità e persiste lo stesso tipo di dati per ogni posizione, quindi un microservizio che si posizionerebbe sopra un'istanza di database farebbe la stessa cosa del microservice su un'istanza diversa.
Alla fine, aggregeremo tutte queste informazioni in un data warehouse globale.
La mia domanda è, dovremmo avere un'istanza del microservizio per database e instradare al microservizio corretto tramite un altro servizio di routing, o se i nostri clienti includono solo informazioni su quale database desiderano utilizzare nelle intestazioni delle richieste a un un singolo microservizio in grado di gestire internamente il routing del database?
Il vantaggio di utilizzare un singolo servizio che gestisce il routing internamente è che invece di 25 istanze potremmo avere un paio di istanze (per gestire il carico). Anche se, non sono del tutto sicuro che avere un paio di servizi con bilanciamento del carico sia davvero un vantaggio.
Questo sarà un microservizio basato su REST.
Infine, se esiste un'alternativa migliore a queste due scelte e sembra che rientrino nell'ambito della domanda menzionare l'alternativa, per favore fallo. Queste due scelte sono i paradigmi che sto considerando al momento.