POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Del bloqueo a la velocidad: Cómo resolvimos mil usuarios concurrentes

Sincronía vs asincronía, WebSockets y colas de mensajes: guía práctica para una app de tracking de paquetes

Publicado el 07/09/2025

Un recorrido práctico y para principiantes por sincronía vs asincronía, WebSockets y colas de mensajes, explicado a través de un problema real y su solución escalable.

Imagina que creas una app de tracking de paquetes. Con 10 y 100 usuarios todo fluye. Pero cuando 1000 repartidores intentan enviar su ubicación a la vez, la base de datos colapsa, la app se vuelve inutilizable y la frustración de los usuarios se dispara.

En una revisión de arquitectura detectamos el cuello de botella: cada actualización de ubicación se ejecutaba dentro de una transacción y el endpoint HTTP no devolvía respuesta hasta que la escritura en base de datos terminaba. Con cientos de peticiones concurrentes, el motor de datos se saturaba con escrituras simultáneas, la latencia saltaba de decenas de milisegundos a varios segundos, aparecían timeouts y la experiencia parecía rota.

Antes de proponer cambios, entendimos cuándo conviene operar en modo síncrono y cuándo en modo asíncrono. Usamos un marco mental sencillo al que llamamos UFSPD: experiencia de usuario, impacto del fallo, consistencia del estado, rendimiento, dependencias. Si el usuario no necesita respuesta inmediata, el fallo puede reintentarse de forma transparente, la consistencia eventual es suficiente, la latencia deseada es baja y nada depende de forma inmediata de la operación, entonces el proceso admite asincronía.

Aplicado a las actualizaciones de ubicación, la conclusión es clara: deben ser asíncronas. En cambio, una confirmación de entrega vinculada al cobro sí exige flujo síncrono porque la experiencia, el impacto del fallo, la consistencia inmediata y las dependencias de pago lo requieren.

Una analogía útil es la cocina de un restaurante. Sin cola de mensajes, cien clientes se agolpan frente a un solo chef y todo se atraganta. Con una cola, los pedidos se registran en caja, se convierten en tickets y la cocina los procesa a ritmo óptimo. Los clientes reciben confirmación de pedido recibido al instante y el sistema mantiene el orden incluso en hora punta.

También optimizamos la comunicación entre el cliente y el servidor. Con peticiones HTTP tradicionales se abre y cierra una conexión por cada envío. Con WebSockets se establece un canal persistente: se conecta una vez y cada actualización viaja de forma inmediata, reduciendo overhead, latencia y consumo de recursos.

La solución final combinó WebSocket y cola de mensajes. El repartidor se conecta vía WebSocket, envía su posición, validamos el payload y lo encolamos en el broker como tarea asíncrona con reintentos. De forma inmediata devolvemos recibido con marca de tiempo, mientras uno o varios workers consumen la cola y escriben la última posición en base de datos. El sistema opera con consistencia eventual para la geolocalización, suficiente para el caso de uso.

Para el procesamiento en segundo plano empleamos un sistema de tareas con reintentos y backoff. Cada mensaje actualiza de forma idempotente las coordenadas del repartidor, registra auditoría y, si ocurre un error transitorio, reintenta sin que el usuario lo perciba.

Los resultados hablaron por sí solos. Antes, la respuesta promediaba medio segundo, con un 15 por ciento de fallos bajo 1000 usuarios concurrentes y miles de conexiones a la base de datos. Después, la respuesta bajó a unos 30 milisegundos, la tasa de fallos cayó por debajo del 0.1 por ciento gracias a reintentos automáticos y el acceso a base de datos quedó concentrado en 10 a 20 workers estables. La app se siente instantánea.

Para la confirmación de entrega adoptamos una estrategia híbrida. Primario: confirmación automática por GPS cuando la señal es fiable. Respaldo: botón manual cuando fallan GPS o red. Verificación: foto y traza de ubicación para auditoría. Así garantizamos el proceso de pago incluso si servicios externos fallan.

Lecciones clave. Mide antes de optimizar y localiza el cuello de botella en el código. Usa la herramienta adecuada: síncrono para flujos críticos como autenticación y pagos, asíncrono para tareas de fondo como notificaciones y analítica, WebSockets para actualizaciones en tiempo real, colas de mensajes para desacoplar y ganar fiabilidad. Piensa en sistemas de extremo a extremo. Planifica el fallo con mecanismos de resiliencia. Empieza simple y evoluciona según escala.

De cara al futuro, evalúa tecnologías de colas y streaming como Kafka, RabbitMQ o AWS SNS, decide entre gRPC y HTTP para microservicios, adopta patrones pub sub para arquitectura dirigida por eventos y explora edge computing cuando necesites alcance global. Los fundamentos de sincronía vs asincronía, colas para desacoplar y WebSockets para tiempo real son la base de todo lo demás.

En Q2BSTUDIO diseñamos y construimos software a medida y aplicaciones a medida escalables, seguras y listas para crecer. Combinamos arquitectura moderna con inteligencia artificial, ia para empresas y agentes IA para automatizar y optimizar operaciones, reforzamos la ciberseguridad end to end y desplegamos en servicios cloud aws y azure con observabilidad y costes bajo control. Si buscas un partner para llevar tu plataforma en tiempo real al siguiente nivel, explora nuestro desarrollo de aplicaciones y software multiplataforma y aprovecha nuestros servicios cloud en Azure y AWS.

También impulsamos la toma de decisiones con servicios inteligencia de negocio y power bi, y ofrecemos automatización de procesos para eliminar cuellos de botella operativos. Si quieres debatir cómo aplicar estos patrones a tu caso, estaremos encantados de ayudarte a diseñar una arquitectura rápida, resiliente y preparada para el futuro.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio