Sincronizar bases de datos cliente-servidor

Estoy buscando algunas estrategias generales para sincronizar datos en un servidor central con aplicaciones cliente que no siempre están en línea.

En mi caso particular, tengo una aplicación de teléfono Android con una base de datos sqlite y una aplicación web PHP con una base de datos MySQL.

Los usuarios podrán agregar y editar información en la aplicación del teléfono y en la aplicación web. Necesito asegurarme de que los cambios realizados en un lugar se reflejen en todas partes, incluso cuando el teléfono no pueda comunicarse inmediatamente con el servidor.

No me preocupa cómo transferir datos desde el teléfono al servidor o viceversa. Menciono mis tecnologías particulares solo porque no puedo usar, por ejemplo, las funciones de replicación disponibles para MySQL.

Sé que el problema de sincronización de datos cliente-servidor ha existido durante mucho, mucho tiempo y me gustaría obtener información (artículos, libros, consejos, etc.) sobre los patrones para manejar el problema. Me gustaría saber sobre estrategias generales para lidiar con la sincronización para comparar fortalezas, debilidades y compensaciones.

Respuestas a la pregunta(5)

Su respuesta a la pregunta