The person I want to sync with has deleted valuable data
As you know, when synchronizing with another Mapeo user, ALL DATA is shared in both directions. When you sync with someone, you will receive all of the observations on their phone and they will receive all of your observations. All edits and deletions that have been made to data will also be transferred to the other device during sync. For example, if a person deletes or edits an observation and then syncs with other devices, this observation will be deleted or edited on all synced devices.
Let's give a practical example:
It can happen that someone misunderstood the behavior of data syncing and deleted some of the data they collected in Mapeo Mobile after having synced with their peers, thinking that data would already be safe in a central database. This is not how Mapeo works. What will happen is that the data you delete on your phone, will be deleted from everyone's phones after syncing with them.
How to prevent the data deleted on one device from being deleted from other devices after syncing?
There is a work-around to prevent this, but it can be very time-consuming. Mapeo sync works under the premise that if multiple users edit the same observation before syncing with each other, the changes that will prevail after syncing are the most recent ones.
Knowing this, before syncing with the person that deleted the data, you can explore your database in Mapeo Desktop, identify the observations created and deleted by the person that deleted data, and make a small edit to each of them. After that, sync your Mapeo Desktop device with the other person's device. This way, after syncing with the person that deleted the data, not only will your data will not be deleted, but the person that deleted the data will get the data back.
Here you have an example of an activity that you can practice with your team to clarify this behavior:
How can you prevent this from happening again?
Mapeo sync can be a tricky and complex process and the functioning of the peer-to-peer database is not always easy to understand. It is important to create project synchronization protocols to ensure that all data becomes part of the project database. For more on that, see Creating user protocols.
Last updated