Ho un modello per un'app che è abbastanza grande, che deve essere tutto sul dispositivo degli utenti allo stesso tempo. Ad esempio, un foglio di calcolo. Se un utente apporta una modifica al modello su un dispositivo, voglio che questa modifica si propaghi a tutti gli altri utenti, aggiornando un server centralizzato.
Non sono del tutto sicuro del modo migliore per raggiungere questo obiettivo. Ho un paio di idee:
- Ogni modifica del modello comporta la notifica al server della modifica, dove aggiorna il suo database e l'evento di modifica viene emesso tramite un socket su tutti i dispositivi collegati. Ogni dispositivo quindi aggiorna il suo modello quando riceve il messaggio dal server.
La mia preoccupazione con questa opzione è che se qualcosa va storto sul server e l'evento non viene emesso, perdiamo consistenza.
- Ogni modifica del modello comporta la notifica al server della modifica, dove viene aggiornato il suo database. Quindi dice a tutti i dispositivi di cui avranno bisogno per aggiornare il loro modello. I dispositivi estraggono quindi una nuova copia dell'intero modello dal server.
Qui potrebbero esserci problemi di prestazioni associati al download ripetuto di grandi quantità di dati sui dispositivi.
Mi chiedo quale approccio per affrontare questo problema potrebbe essere?