La nostra azienda sta progettando un nuovo ERP basato su microservizi. Il motivo per cui vogliamo implementare i microservizi è perché abbiamo notato che alcune parti critiche del vecchio ERP vengono utilizzate pesantemente dai nostri clienti e, mentre pianifichiamo di far crescere la nostra attività in un periodo di 2 anni, vogliamo essere in grado di distribuire più istanze in nuovi server come richiesto in qualsiasi momento.
Questo è il primissimo progetto che utilizziamo con i microservizi, quindi ci sono molte discussioni sul design, su ciò che dovrebbe essere suddiviso in diversi microservizi e su cosa dovrebbe stare insieme.
La vecchia versione di questo ERP sta dando servizio a diversi clienti. Alcuni di questi clienti ci hanno chiesto di avere l'applicazione nei nostri server, ma alcune parti del DB sui loro server (informazioni sensibili).
Per questo motivo, alcune persone del team di sviluppatori hanno suggerito di creare un microservizio che avrebbe dovuto essere solo l'esecuzione di query, ricevendo tutti i dati necessari per effettuare una connessione al database richiesto per connettersi ai DB clienti quando richiesto. La maggior parte della squadra è d'accordo con l'idea, ma alcuni di noi non ne sono sicuri.
Non ci piace l'idea di trasmettere i dati in questo modo e si preoccupano delle prestazioni generali. Le nostre preoccupazioni sono perché pensiamo che chiamare questo servizio ogni volta che abbiamo bisogno di dati dal DB potrebbe richiedere molto tempo per effettuare la chiamata, eseguire la query, analizzare il risultato in json e quindi analizzare nuovamente gli oggetti nel codice del chiamante.
La domanda riguarda questo microservizio specifico il cui unico compito sarà eseguire query per altri servizi: sarebbe un buon microservizio solo per query eseguibili?