Creación de salas de espera flexibles con Fastly Compute

Sr. Serverless Solutions Architect, Fastly

Senior Manager, Product Marketing, Developer Platform

Director sénior de marketing para desarrolladores

Imagina que tu sitio de comercio electrónico lanza una oferta flash o que tu plataforma de venta de entradas pone a la venta las entradas para un concierto en un estadio. Miles de usuarios inundan tus puntos finales al mismo tiempo, lo que puede saturar los servidores de origen, y ofrecer una mala experiencia a los clientes y que acaben frustrados al ver errores 404 o páginas que no funcionan.
Las salas de espera son una solución perfecta para controlar el flujo de visitantes a un sitio web, garantizar su estabilidad y optimizar la experiencia de compra. En el caso de la venta de entradas para eventos muy demandados, las salas de espera permiten poner a los clientes en cola de forma justa y evitar la sobreventa. En este artículo, te ofrecemos una visión general de un interesante proyecto centrado en la creación de una aplicación de sala de espera basada en Fastly Compute y cómo puedes aprovecharla para tu propio caso de uso.
Objetivos de nuestro proyecto de sala de espera:
Gestión de colas: la aplicación debe ser capaz de gestionar de manera eficiente un gran número de usuarios al mismo tiempo y colocarlos en una cola virtual para evitar la sobrecarga del servidor.
Actualizaciones en tiempo real: los usuarios deben poder ver su posición en la cola y el tiempo de espera estimado, que se actualizará automáticamente.
Ajustes configurables: permiten ajustar fácilmente la configuración de la cola, como los intervalos de actualización y la frecuencia de admisión automática de usuarios.
Medidas antifraude: incluyen funciones de seguridad integradas para evitar la manipulación de colas y garantizar un acceso justo.
Compatibilidad con varias colas: ofrece la posibilidad de gestionar diferentes rutas o eventos con colas independientes.
Fastly Compute permite crear salas de espera flexibles
La aplicación de sala de espera utiliza Fastly Compute junto con la base de datos Redis de Upstash. Upstash tiene una integración API con Fastly, y el uso de este tipo de base de datos con estado y operaciones atómicas garantiza que todas las operaciones que se escriben en ella se ejecuten correctamente en el orden en que se recibieron. A continuación se ofrece una descripción detallada:
Cuando un usuario accede a un punto final protegido, la aplicación comprueba si hay una cola activa para esa ruta. Si está activa, se asigna al usuario un identificador único y se le coloca en la cola.
La aplicación utiliza Redis para realizar un seguimiento de la posición en la cola, la longitud y el cursor (la siguiente posición que se atenderá).
Los usuarios reciben una cookie que contiene la información de su cola y se actualiza periódicamente para respetar su turno.
La aplicación puede admitir automáticamente a los usuarios a una frecuencia determinada o permitir la admisión manual por lotes.

Figura 1: Flujo de petición del usuario en la sala de espera (ver pasos a continuación)
Un usuario hace una petición al sitio (que está gestionado por Fastly).
La solicitud se envía al servicio Fastly Compute. (Esta es la lógica principal de la aplicación que se ejecuta en el borde. Contiene el código que decide si se pone al usuario en cola o se le admite).
La lógica de Compute comprueba si la sala de espera está ACTIVA y si el usuario tiene un token válido (cookie).
Si no hay ningún token válido, Compute interactúa con Redis de Upstash para obtener la longitud actual de la cola, asigna al usuario una nueva posición en la cola y emite una cookie de token.
Si el usuario aún no ha sido admitido, Compute utiliza una plantilla de página almacenada en Fastly KV Store para servir inmediatamente la página de la sala de espera desde el borde, con lo que se garantiza que nunca se vea afectado el origen.
Si el token es válido y el usuario ha llegado al principio de la cola (¿token activo? = sí), Compute reenvía la petición al servidor de origen.
Opciones para personalizar la sala de espera:
Adapta la plantilla para que refleje tu marca: personaliza la página de la sala de espera para que coincida con tu marca utilizando KV Store de Fastly.
Segmentación geográfica: configura colas específicas por país para eventos localizados.
Varias colas: configura diferentes colas para distintas secciones del sitio web o para diferentes eventos.
Estrategias de admisión: aplica una lógica personalizada sobre cómo se admiten los usuarios desde la cola.
Diseño de tu sala de espera en Fastly Compute
Para crear tu propia sala de espera con Fastly Compute:
Configura un servicio de Fastly Compute.
Crea una base de datos de Redis de Upstash.
Configura KV Store de Fastly para los ajustes de la cola y las plantillas de página.
Aplica la lógica central usando JavaScript, Rust o Go.
Haz pruebas exhaustivas con tráfico simulado.
Protege tu infraestructura y mejora la experiencia de uso
Al aprovechar Fastly Compute y una base de datos rápida y distribuida, puedes crear soluciones fiables para gestionar situaciones de mucho tráfico. Te animamos a que explores este patrón y lo adaptes a casos de uso concretos.
Independientemente de si gestionas la venta de entradas, el lanzamiento de productos o cualquier evento con gran demanda, una sala de espera bien implementada puede mejorar considerablemente la experiencia del usuario y proteger tu infraestructura. ¡Feliz programación y cuéntanos qué cosas increíbles creas con Fastly Compute!