Il sistema su cui sto lavorando impiega un meccanismo di caching / preloading piuttosto sofisticato per terze parti esterne e, poiché è basato su un'architettura di microservizio, vorrei estrarre l'intera funzionalità di caching / preloading da un microservice di funzionalità (per esempio , prenotazione / ricerca) ad uno dedicato:
+-----+ +--------------------+ +----------+
| API | <--> | booking | internal | <--------> | external |
| | | service | cache | | service |
+-----+ +--------------------+ +----------+
versus
+-----+ +---------+ +---------+ +----------+
| API | <--> | booking | <--> | caching | <--> | external |
| | | service | | service | | service |
+-----+ +---------+ +---------+ +----------+
Sono preoccupato dei potenziali colli di bottiglia che questo potrebbe introdurre: invece del microservizio di prenotazione che utilizza un sistema di cache interno che parla con un back-end, comunicherà con un microservizio separato per tutte le chiamate get / set (che a sua volta parla al backend). Il collo di bottiglia che vedo è principalmente il tempo aggiunto per comunicare attraverso il microservizio aggiuntivo. Questa dovrebbe essere una grande preoccupazione? Come devo affrontare la comunicazione tra il microservice di prenotazione e quello di memorizzazione nella cache (REST, code di messaggi)? Dovrebbe essere la comunicazione sincrona, per quanto vedo le cose. Quali altri colli di bottiglia (nascosti) possono sorgere da questa configurazione?