¿Cómo tratan los clientes de API móviles con redes de datos poco confiables?

Buena pregunta. La falta de fiabilidad de la red es un problema para cualquier desarrollador de aplicaciones móviles que necesite una conexión a la nube. A menudo usa una cola de mensajes para mantener comunicaciones confiables con el back-end; la cola actúa como un caché o un búfer para asegurarse de que los mensajes lleguen a donde deben ir y que el sistema adecuado actúe sobre ellos en el orden correcto la cantidad adecuada de veces. Estoy simplificando demasiado, y no soy un experto en tecnología, pero esa es una respuesta de alto nivel. Sin embargo, una cola de mensajes solo resuelve parte del problema si su aplicación es más complicada que un usuario hablando con un sistema de fondo.

El problema se agudiza especialmente cuando está desarrollando una aplicación que conecta múltiples puntos finales y necesita mantenerlos sincronizados, como cualquier aplicación que conecte a un grupo de personas para compartir, colaborar o mantenerse al tanto. También pueden conectarse a sistemas de back-end y necesitan saber el estado actual de ese sistema antes de realizar cambios o contribuir con datos.

Entonces, el problema de la conectividad intermitente a menudo se convierte en un problema de mantenimiento del estado. ¿Cómo hace un seguimiento del back-end del estado de cada cliente móvil que se conecta a él? En la web, los desarrolladores suelen asumir una conexión confiable y mantener el estado en el cliente. Pero en el móvil, debe asumir la pérdida regular de conexión, ya sea durante 50 microsegundos o 50 minutos. Desea mantener el estado en la nube. Pero tratar de mantener el estado en la nube para cada dispositivo móvil que se conecta no es práctico y crea problemas de escala.

Este es uno de los problemas críticos que tuvimos que abordar cuando creamos nuestra plataforma Go Machine, y una de las razones por las que resuelve el problema de conectividad intermitente para los desarrolladores; Abordamos el mantenimiento del estado de una manera altamente eficiente utilizando colas de mensajes persistentes y otras técnicas de las que el desarrollador no tiene que preocuparse cuando usan nuestro SDK para comunicarse con el sistema.