Long Polling vence a WebSockets: Una guía práctica para sistemas en tiempo real escalables

2025-01-05

El equipo de Inferable eligió long polling HTTP en lugar de WebSockets al construir un sistema en tiempo real escalable utilizando Node.js y TypeScript. Al enfrentarse a los desafíos de cientos de nodos de trabajo que necesitan actualizaciones de trabajo en tiempo real y agentes que requieren sincronización de estado en tiempo real, descubrieron que el long polling era sorprendentemente eficaz. Manteniendo las conexiones HTTP abiertas hasta que lleguen nuevos datos o se alcance un tiempo de espera, evitaron las complejidades de WebSockets, como la autenticación, la capacidad de observación y la compatibilidad de la infraestructura. El artículo detalla su implementación, incluida la optimización de la base de datos, el manejo de errores y las mejores prácticas, como el TTL obligatorio, el TTL configurable por el cliente y los intervalos de sondeo de la base de datos adecuados. La elección se debió a la necesidad de un control central del producto sobre el mecanismo de entrega de mensajes, cero dependencias externas y facilidad de comprensión y modificación. Se discuten brevemente alternativas como ElectricSQL, destacando escenarios en los que WebSockets podrían ser preferibles.