by dhaupert » Mon Sep 07, 2015 8:30 am
Hi,
Great questions! In any multi-user scenario a set of rules have to be in place for handling these cases. The rules in HanDBase are based on this simple fact- the newest change will will always win. So if user A is modifying a database record and user B also modifies the same record between syncs, the one who made the modification last will win and their changes will be in the final record. Imagine your record is a customer and you have an existing record for this customer. Then one person modifies this record to add a phone number. A few minutes later another person modifies the record to include the email. The sync process will look at this particular record and see the last touched date/time was from the second person and their record will wind up in the synced/merged database.
Since HanDBase syncs at the record level, this would mean that the phone number added would be lost in this case. However, since there can be an unlimited number of users syncing with each other, the only real way to handle this case is to have field level syncing which has so much additional overhead it would greatly increase the size of each database record, the speed of the sync, and the experience overall. When designing the architecture for this, I felt that accommodating this case was not a good decision based on these downsides.
I hope this answers your question!