Ho progettato uno stack di microservizi con docker come backbone, circa 50 servizi in totale finora, ancora in crescita ...
Tutto funziona bene, felice della scelta progettuale, ma margini di miglioramento. Ad esempio, notiamo molta logica duplicata nei diversi servizi. La maggior parte di queste duplicazioni è correlata a query a servizi esterni allo stack, ad esempio MySQL
o Elastic Search
-query o% diverso di% di%, ecc.
La mia idea è di rifattorizzare il progetto impostando un livello / api gateway. L'API verrebbe esposta solo nella rete privata. Sarebbe un componente che gestisce tutti i mapping dei gateway, quindi quando uno sviluppatore ha bisogno di mantenere un'entità, chiama l'endpoint sull'API che archivierà l'entità dove e come si suppone. Abbiamo, diciamo, circa 10 diverse soluzioni di persistenza così come sono, anche in crescita. Devo supportare più soluzioni a causa del dominio in cui lavoro.
Riesco a vedere i vantaggi con un design a livello di gateway poiché possiamo rifattorizzare le soluzioni di persistenza in modo più libero.
Sul lato negativo, vedo l'accoppiamento in cui tutti i servizi dipendono da 1 servizio.
È una buona idea creare un punto centrale nello stack dei microservizi, come sarebbe il livello gateway? Faresti lo stesso / Fai lo stesso? Qualche argomentazione a favore o contro che non vedo? Qualche suggerimento sul nome migliore quindi REST API
layer?