Respuesta corta
Esto podría deberse a un retraso simple en el servicio del proveedor de notificaciones push de terceros o un retraso en la recepción del teléfono debido a problemas de conexión. Antes de juzgarme, agárrate a ese pensamiento y continúa leyendo.
Un nivel más profundo
Considere el siguiente diagrama. Se dibuja solo para mostrar cómo pudo haber ocurrido la demora con algunas suposiciones razonables sobre las opciones de tecnología.
- Quiero unirme a la Legión Extranjera Francesa ¿me impedirán mis dientes y mi salud mental pasada?
- ¿Soy horrible si no me importa cuánto plástico hay en el océano?
- Sé exactamente en qué acciones quiero invertir. ¿Cuál es el mejor recurso para invertir?
- Fallé la entrevista telefónica de Google. ¿Cómo debo manejar la sensación de que soy totalmente un perdedor?
- Tengo 24 años y no sé nada de música. ¿Puedo aprender a tocar el violín por mi cuenta (tutoriales en línea) o debo ir a buscar un tutor?
Consideremos a un usuario Bob y él tiene algunas notificaciones nuevas, por lo que un procesador lee todas las notificaciones “nuevas” tanto en tiempo real como en eventos por lotes (eventos al final del día) y los envía paralelamente a todas sus sesiones activas. Sesiones activas significa sesiones conectadas. Podría tener 3 teléfonos con quora y 2 sesiones web o podría estar teniendo una sesión móvil y web activa. En este caso, supongamos que está teniendo 2 sesiones activas: una móvil y una web.
El procesador necesita 2 mecanismos diferentes para empujar realmente a dispositivos móviles y web. Supongo que Quora usa GCM (servicio de mensajería en la nube de Google) para Android push y alguna técnica personalizada como websockets o socketsio para web push. Vea el paso 1 cuando el procesador envía el mensaje en paralelo a 2 servicios push diferentes. así que Bob estaba en su sesión web, leyó el mensaje y lo marcó como leído. Otro procesador vuelve a actualizar el estado de ese mensaje como “leído”. Vea los pasos 2 y 3. Pero GCM después de un retraso envía la notificación a la aplicación móvil. Vea el paso 4. (Esta es solo una posible razón, podría haber varias como una conexión celular intermitente).
Motivo: Una vez que GCM recibió el mensaje, no tendrá la visibilidad del hecho de que Bob ha leído el mensaje en su sesión web y lo marcó como “leído”.
PD: En realidad, para todos los eventos de Quora en tiempo real como “votos a favor”, “seguir” puede haber un evento de firehose y una plataforma de datos de flujo completo detrás de él. Un procesador formateará los datos y los conservará como se muestra. Todas las notificaciones que surgen de los eventos de quora se ingresarán en una cola para que el procesador de notificaciones las maneje.