Immagina di costruire un algoritmo di raccomandazione del prodotto per un'applicazione ecommerce che è costruita come un'architettura di microservizi, questa architettura con servizi separati per utenti e prodotti. L'algoritmo dovrebbe essere esposto come un servizio di raccomandazione che, dato un id utente, restituisce un elenco di prodotti consigliati in base alla cronologia degli acquisti.
Ecco il problema, supponiamo che l'algoritmo della raccomandazione sia offline, quindi viene eseguito in batch e richiede la cronologia degli acquisti di ogni utente per ogni esecuzione, come si ottengono questi dati dal servizio utente? In un'architettura monolitica basta leggere direttamente da una copia report del database che consente query complesse di grandi dimensioni senza alcun impatto sulle prestazioni di produzione.
La risposta ovvia a me sembra essere che fai una richiesta enorme al servizio utenti per ogni corsa e assicurati di avere la capacità di gestire quella richiesta, ci sono soluzioni migliori?