As in any Personal Cloud system, synchronization conflicts are likely to occur. As it not possible to avoid these errors, we need to implement a strategy to deal with and resolve them. For example, it can happen in a situation where two or more users modify the same file simultaneously.
It can happen that, while working with a file, we lose the Internet connection. Clients must be prepared to handle these situations. While the client has no Internet connection be, it cannot notify any updates to the server, so the client must keep all changes in the internal database until the connection is reestablished and they can be submitted to the server.
In the figure below we can observe a conflict scenario. In this case, two different users try to upload a different version of the same file. The SyncService sequentially receives their requests and returns a positive response to the first processed request (User 2) and a negative response to the second (User 1). User 1 will have to rename its version and download the correct one from the server.
StackSync will rename the local files adding “Conflicted copy” to the name and treating them as new files, letting the user decide which file is the correct one.