As far as I know, the best practices in a microservices architecture are to not use shared DB/caches, so each microservice should have own database and cache database/mechanism. But what about the sessions?
Most peoples I found is proposing to use distributed session storage and as far as I understand distributed session storage means to have shared storage for sessions. But here is question number one. Should only API gateways verify the session or each microservice should verify the session? In other words, if frontend sends some request, should I only verify the session in the API gateway or in the each of microservice that API gateway communicating with?
Also, I heard, mostly in the videos on youtube from some conferences, that some teams using separate microservice to manage the session. But I can't find much information about that approach. Looks like it allows us to not share the session storage and manage it in one place as other storages in the microservices architecture. But I think it slows down the application as it adding communication overhead. I want to hear what do you think about this approach?