La mia azienda sta attualmente lavorando all'adozione di un'architettura di microservizi, ma stiamo incontrando alcuni dolori crescenti (shock!) lungo la strada. Uno dei punti chiave di conflitto che stiamo affrontando è come comunicare grandi quantità di dati tra i nostri diversi servizi.
Come sfondo abbiamo un archivio di documenti che funge da repository per qualsiasi documento che potrebbe essere necessario gestire in tutta l'azienda. L'interazione con detto negozio avviene tramite un servizio che fornisce al cliente un ID univoco e una posizione per lo streaming del documento. È possibile accedere successivamente alla posizione del documento tramite una ricerca con l'ID fornito.
Il problema è questo: ha senso che tutti i nostri microservizi accettino questo ID univoco come parte della loro API allo scopo di interagire con i documenti o meno? Per me questo è intrinsecamente sbagliato - i servizi non sono più indipendenti e si basano sul servizio del negozio di documenti. Mentre riconosco che questo potrebbe semplificare la progettazione dell'API e forse anche alcuni guadagni in termini di prestazioni, l'accoppiamento risultante più che controbilancia i benefici.
Qualcuno sa come gli unicorni arcobaleno (Netflix, Amazon, Google, ecc.) gestiscono grandi file / scambio di dati tra i loro servizi?