Autenticación RESTANTE: ¿resultado deficiente rendimiento en alta carga?

Para un servicio web RESTful, decimos que el servidor no debe almacenar ningún estado. Ahora, para cada solicitud, el 'usuario' debe estar autenticado y debe tener una autorización para la (s) acción (es) que desea llevar a cabo.

Ahora cada solicitud contendrá datos de autorización para ese usuario. Aquí están mis confusiones:

Suponiendo que hay un campo de inicio de sesión y contraseña en la página de inicio. El usuario ingresa el nombre de usuario / contraseña que se envía de vuelta al servidor, el usuario verificó y luego se devuelve 'algún token'. Ahora este token se envía al servidor en cada solicitud. Pregunta (s):

¿La base de datos del back-end necesita tener una tabla separada para almacenar estos tokens indexados por nombre de usuario? Suponiendo que el token se almacena en una base de datos, cada solicitud debe realizar una llamada a la base de datos. ¿No hace eso que el servidor de DB sea un cuello de botella en tiempos de alta carga?Si el token no está realmente almacenado en la base de datos, ¿cuál es el mejor lugar 'tranquilo' para almacenarlo? Probablemente, las sesiones de espera NO sean relajantes, pero luego no veo cómo la autenticación / autorización de descanso aumenta (w.r.t. los puntos anteriores) Si NO es un token, ¿es necesario enviar el nombre de usuario / contraseña de un lado a otro? (Suena como una mala idea

Puedo estar malinterpretando el concepto de autenticación / autorización RESTful. Pero, ¿es este realmente el caso de que para cada solicitud http el 'servicio' necesita hacer un viaje a la base de datos para verificar las credenciales? ¿Hay algo que pueda atajar el proceso y seguir siendo fiel a los principios relajantes? Podría pensar en tener un caché que almacena los detalles y, en caso de reinicio del servidor, simplemente hace el viaje a la base de datos. Eso es solo un beneficio de rendimiento que podría complicar el sistema (quizás valga la pena, no lo sé). ¿Es esta la única solución?

Así que desde un punto de vista teórico / conceptual de REST (implementación no necesaria), ¿cómo se maneja este problema (si es que es un problema)? ¿Cómo ha manejado este problema en su experiencia profesional y qué tan relajante fue el enfoque?

Estamos trabajando en un servicio web Restlet + J2EE + MySQL Restful y tuve esta pregunta emergente, pero no obtuve respuestas satisfactorias (Google, Stackoverflow, etc.). Conozco la autorización básica y de resumen de HTTP, pero no estoy familiarizado con los elementos internos de almacenamiento / recuperación según la explicación anterior.

Respuestas a la pregunta(3)

Su respuesta a la pregunta