Tengo un problema de sincronización bastante simple. Tengo una tabla con aproximadamente 10 columnas que quiero mantener sincronizada entre un archivo sqlite en 3 clientes diferentes: un cliente de Iphone, un cliente de navegador y un cliente de Ruby on Rails. Así que necesito una solución de sincronización simple que funcione para los 3, es decir, puedo implementarla fácilmente en Javascript, Objective C y Ruby, y funciona con JSON sobre HTTP. He analizado varios componentes de otras soluciones de sincronización como la de git, algunos de los tutoriales que han surgido de la comunidad de Google Gear y un complemento de carriles llamado acts_as_replica. Mi enfoque ingenuo sería simplemente crear una última marca de tiempo sincronizada en la base de datos y luego crear un registro de cambios de todas las eliminaciones a medida que se realizan. (No permito las actualizaciones de las entradas en la tabla). Luego puedo recuperar todas las entradas nuevas desde la última marca de tiempo, combinarlas con las eliminaciones y enviar un registro de cambios como json sobre http entre las 3 soluciones.¿Cuál es la mejor manera de sincronizar 2 tablas sqlite con http y json?
¿Debo considerar el uso de hash SHA1 o un UUID de cada entrada o es la última marca de tiempo sincronizada suficiente? ¿Cómo me aseguro de que no haya entradas duplicadas? ¿Hay algún algoritmo más simple que pueda seguir?