José Valim, creador de Elixir, publica un artículo técnico en el que rebate la idea popular de que para la mayoría de aplicaciones basta con Server-Sent Events (SSE) combinado con peticiones Fetch, y afirma que la comparación entre WebSockets y SSE debe centrarse en el orden de los eventos y la corrección de los datos. Partiendo de un comentario destacado en Hacker News sobre un artículo de Django LiveView, Valim explica que, cuando una interfaz se actualiza desde dos flujos distintos —las respuestas a acciones Fetch y los eventos push de SSE—, es habitual que las operaciones lleguen desordenadas: por ejemplo, una etiqueta puede añadirse y otra eliminarse de forma concurrente y, si los mensajes no se entregan en el mismo orden temporal, la UI puede mostrar momentáneamente un estado intermedio que induce a error al usuario. El desarrollador de Phoenix sostiene que esto no se soluciona invocando la consistencia eventual: la interfaz puede quedar indefinidamente desincronizada hasta que llegue un nuevo evento o el usuario recargue. La raíz del problema, argumenta, no es SSE en sí, sino mezclar varios canales de datos sin un mecanismo de orden causal. Frente a esta dificultad, los WebSockets ofrecen un canal bidireccional único que permite preservar el orden entre la acción del usuario y la respuesta del servidor sin saltos adicionales por colas internas, algo que Phoenix LiveView aprovecha gracias a la comunicación directa entre nodos mediante Erlang distribuido. Valim reconoce que es viable hacer funcionar SSE + Fetch, pero advierte del coste en latencia o en carga del servidor, y menciona plataformas como Electric como una alternativa para reordenar eventos complejos en el cliente. El artículo cierra instando a los desarrolladores a preguntarse, antes de elegir transporte, cómo garantizarán la entrega ordenada de eventos y la coherencia de la interfaz.
