Long Polling vence a WebSockets: Una guía práctica para sistemas en tiempo real escalables
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.