¿Cómo maneja Quora todos los eventos en tiempo real que ocurren en el sitio?

No puedo hablar con Quora específicamente. Pero en términos generales, hay dos enfoques para manejar datos “en tiempo real” en aplicaciones web. El enfoque tradicional se llama votación . En el sondeo, tiene JavaScript del lado del cliente que realiza solicitudes de Ajax al servidor en un intervalo de repetición para buscar actualizaciones de los datos. El sondeo generalmente es simple de implementar, pero dependiendo del intervalo, tiende a ser intensivo en recursos o no en tiempo real . Hasta hace solo un par de años, el sondeo era la única solución y todavía se usa ampliamente. El nuevo atractivo en las aplicaciones web en tiempo real se llama sockets web . Los sockets web son una API de JavaScript relativamente nueva integrada en los navegadores modernos y se encuentra bajo el paraguas de HTML5 . Los sockets web proporcionan una conexión bidireccional y persistente entre el cliente y el servidor. Dos vías, lo que significa que el servidor puede enviar mensajes al cliente y el cliente puede enviar mensajes al servidor. Persistente, lo que significa que en la carga de la página, hay un apretón de manos inicial , después del cual la conexión permanece abierta durante la vida útil de la página. Hay varios marcos de JavaScript que ofrecen buenas abstracciones en la parte superior de la API de sockets web, pero en general, es una implementación más compleja que el sondeo. Sin embargo, una vez configurado, utiliza pocos recursos y es realmente “en tiempo real”.