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?