Ho un'API RESTful con i client corrispondenti.
Se una richiesta cliente recupera un set di risorse (Eventi) in base a un filtro, ad esempio eventi che si svolgono tra il 2015-04-13 e il 2015-04-19. Se un evento che è stato precedentemente sincronizzato con il client modifica l'ora sul server in modo che si trovi al di fuori dell'intervallo di tempo sopra indicato, la richiesta successiva non includerà l'evento aggiornato e il client non saprà della modifica finché non lo farà una richiesta che include il tempo aggiornato.
Le soluzioni a cui sto pensando sono
- Aggiunta di una gestione semplificata delle versioni creando un nuovo evento con il tempo aggiornato che fa riferimento all'evento originale ogni volta che un evento viene aggiornato. Quando viene effettuata una richiesta, il server deve restituire l'ultima versione di tutti gli eventi nell'intervallo di tempo.
- Aggiunta di una nuova risorsa (ad esempio EventUpdate) che tiene traccia solo delle variazioni temporali di un evento che lasciano una sorta di "lapide" dove un tempo si trovava l'evento. Ogni volta che viene effettuata una richiesta, EventUpdate deve essere controllato per vedere se ci fosse precedentemente un evento nell'intervallo di tempo richiesto, in tal caso, anche questi eventi dovrebbero essere inclusi nella risposta.
In questo momento mi sto orientando verso la soluzione 2. dal momento che sembra meno esagerato per ciò di cui ho bisogno in questo momento.
Esiste un modo standard per risolvere questo tipo di problema di sincronizzazione?