Autenticação RESTful - resultando em baixo desempenho em alta carga?

Para um serviço web RESTful, dizemos que o servidor não deve armazenar nenhum estado. Agora, para cada solicitação, o 'usuário' deve ser autenticado e deve ter uma autorização para as ações que ele / ela deseja executar.

Agora, toda solicitação conterá dados de autorização para esse usuário. Aqui estão minhas confusões:

Supondo que haja um campo de login e senha na página inicial. O usuário digita o nome de usuário / senha que é enviado de volta ao servidor, o usuário verificado e 'algum token' é retornado. Agora, esse token é enviado ao servidor em todas as solicitações. Questões):

O banco de dados back-end precisa ter uma tabela separada para armazenar esses tokens indexados por nome de usuário?Supondo que o token seja armazenado em um banco de dados, toda solicitação precisa fazer uma chamada ao banco de dados. Isso não torna o servidor do DB um gargalo em tempos de alta carga?Se o token não estiver realmente armazenado no banco de dados, qual é o melhor local 'tranqüilo' para armazená-lo?A realização de sessões provavelmente NÃO é tranquila, mas não vejo como a autenticação / autorização repousante aumenta (com os pontos acima).Se NÃO for um token, será necessário enviar o nome de usuário / senha? (parece uma má ideia :)

Posso estar entendendo mal o conceito de autenticação / autorização RESTful. Mas é realmente esse o caso em que para cada solicitação http, o 'serviço' precisa fazer uma viagem ao banco de dados para verificar as credenciais? Existe algo que pode atalho no processo e ainda se mantém fiel a princípios repousantes? Eu poderia pensar em ter um cache que armazena os detalhes e, no caso de reinicialização do servidor, apenas faça a viagem para o banco de dados. Esse é apenas um benefício de desempenho que pode complicar o sistema (talvez valha a pena, não sei). Essa é a única solução?

Portanto, do ponto de vista teórico / conceitual do REST (implementação não necessária), como esse problema é tratado (se é que existe)? Como você, em sua experiência profissional, lidou com esse problema e como a abordagem foi tranquila?

Estamos trabalhando em um serviço da web Restlet + J2EE + MySQL Restful e essa pergunta foi exibida, mas não há respostas satisfatórias (Google, Stackoverflow etc.). Estou ciente da autorização Basic e Digest do HTTP, mas não estou familiarizado com os internos de armazenamento / recuperação de acordo com a explicação acima.

questionAnswers(3)

yourAnswerToTheQuestion