¿Por qué recibo notificaciones push de la aplicación Quora de Android para las actualizaciones que ya he “leído” (borrado) en la web?

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.

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.