Devo sincronizzare il mio stack di dati core locale con un server che esegue un'archiviazione persistente dei dati sotto le copertine. (Ho seguito altri post qui e su SO su argomenti simili)
I miei requisiti:
-
Sincronizzazione unidirezionale. Significa che il mio server è sempre aggiornato ei miei clienti hanno solo bisogno di essere alimentati con delta incrementali che alimentano nel loro stack di dati di base.
-
Il server potrebbe inserire arbitrariamente nuovi record, modificare quelli esistenti o addirittura eliminarli.
Preferisco non usare RestKit perché posso fare il lavoro di fare interrogazioni e aggiornare io stesso lo stato locale. Non ho bisogno di una libreria extra per farlo.
La mia soluzione:
Tengo localmente una data aggiornata (UTC). Invio periodicamente questa data al mio server e il mio server risponde con i dati che devo aggiornare o inserire, in base alla data / ora del server per ciascun record.
Il mio problema:
Non so come gestire le eliminazioni.
Come gestirò le eliminazioni in uno scenario del genere? Se cancello il record dal server, come faranno i client a cancellare anche quel record.
Pensieri? Posso pensare a un numero di modi complicati per farlo (ad esempio non eliminare il record o tenere traccia separata dei record cancellati, ecc.), Ma sto cercando il più semplice.