Questo suona diverso da quello che ho sentito in precedenza. La mia comprensione di una tipica architettura di microservizi è che avresti una varietà di microservizi a grana fine, combinati insieme in una o più applicazioni a grana grossa.
In questa vista, probabilmente avrai una singola app Web di E-Commerce, che utilizza una varietà di microservizi nel back-end (il servizio di carrello, il servizio di suggerimento, il servizio di ricerca, ecc.).
Se questo è il caso, c'è solo una "app" con cui l'utente interagisce: l'app Web. L'utente accederà all'app Web e quindi l'ID dell'utente verrà recapitato ai vari microservizi back-end.
Se l'app Web comunica con i servizi di back-end utilizzando un'interfaccia privata, è sufficiente passare direttamente l'ID utente - non è affatto diverso dal passare, ad esempio, un ID utente in una query di database. Se hai un'interfaccia pubblica che stai utilizzando, potresti dover passare qualcosa come una sessione chiave, anche se ciò dipenderebbe esattamente da quale tipo di interfaccia pubblica hai.
Nota: tutto questo presuppone che si stia parlando di un'architettura di microservizi lato server, dal momento che si cita l'elenco "rotaie" come tecnologia correlata, ma non nulla specificatamente lato client. Utilizzare le API web su Ajax è qualcosa che considererei un argomento separato.