Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best practices in syncing data

Context

A mobile application can add/edit/delete a customer in it's own offline database. A web application can also add/edit/delete a customer in the master database on a web server. The mobile application will try to sync it's database with the master database every X hours, provided it has an internet connection available.

Case

  1. Mobile application edits customer A in its offline database
  2. Web application edits customer A in the master database
  3. Mobile application gains access to internet and syncs its offline database with the master database.

Question

How should the system handle the two versions of the data? The version of the Mobile application is older than the version of the Web application but overwriting everything edited by the mobile application with the data from the web application seems not very user friendly.

I'm looking for information/best practices on how to solve known versioning/syncing problems with data. I'm not interested in technologies who can assist in this. I want to understand the solutions before jumping blindly into a promising versioning tool.

like image 706
BBQ Avatar asked Mar 01 '15 19:03

BBQ


People also ask

What is the technique of data synchronization?

Data synchronization is the ongoing process of synchronizing data between two or more devices and updating changes automatically between them to maintain consistency within systems. While the sheer quantity of data afforded by the cloud presents challenges, it also provides the perfect solution for big data.


1 Answers

I thought about this a lot and created a project... The documentation for it is detailed and explains why and how... It may help, or at least give you things to think about.

https://github.com/forbesmyester/SyncIt

like image 189
Forbesmyester Avatar answered Oct 03 '22 08:10

Forbesmyester