Prompt for cached data. And keep the synchronization conflict

When editing large documents on different clients, synchronization conflicts can occur, resulting in data loss. The reason for this is that due to the large document and slow synchronization, I opened the cached data and then edited on the cached data. But I can’t be blamed for this, because it was all unprompted and I was completely unaware of it. There was no prompting for the whole process. It could have taken me a long time to realize that there was data missing. Even if I find it at that time, the version will not be available in the version history.

I’ve encountered this situation several times. To solve this problem, I even keep changing the document name to make sure I can quickly recognize whether I have the cached or the latest version open on different clients.

Some software like OneNote keeps the conflicting version and then tells the user to do something about it so they don’t lose anything. But Dynalist doesn’t. Even though it has a version history feature, it only keeps one version when it encounters a synchronization conflict, which causes the content to be lost.

Verification method 1: computer and cell phone open the same document, cell phone off wifi and network, then edit the document on the computer, then edit the document on the phone, and then restore the phone’s wifi and network, then the document on the computer will become the version on the phone, and in version history, there will be no version edited by the computer at that time.

Verification method 2: Open two windows in the browser, open the same document, and then quickly make different edits between the two windows. Soon there will be data loss.

I would like Dynalist to have the following features:

  1. when opening a document, if it opens with cached data, Dynalist can prompt me that it is cached data and possibly not the latest version of the document on the server.
  2. If there is a synchronization conflict, keep the conflicting data and prompt the user to handle it.
  1. There is no way for Dynalist to know this. If device A has internet turned off, and you make edits, then the server and device B will think they are the latest version.
  2. Once device A has internet turned back on, the nodes (bullet points) which were edited will upload to the server to be checked. Each node will be checked for edit timestamp, and each which is newer than the server version will be saved. Each with an edit timestamp older than the server version will be deleted and lost. Prompting the user to resolve conflicts is a design choice that most other apps don’t do, so I don’t expect Dynalist will ever do it either.

It is important to distinguish document from node. Dynalist does not need to sync the whole document. It doesn’t do conflict resolution at the document level, only the node level. A node is a bullet point. Each new node you create has a random ID number, and a last-edit timestamp. This is where conflicts are resolved. The latest timestamped edit for a node ID always wins.

To avoid sync issues I recommend:

  • Adding new nodes will never have issues. So, whenever possible, make a new node.
  • Editing old nodes requires a good internet connection. So, I recommend using the web browser, since it doesn’t have offline capabilities. If your internet is off, it won’t let you edit.
  • It’s a bad idea to edit old nodes from two different devices. Avoid that habit in general, because if your internet is turned off and then you edit from a different device, your old edits will be lost forever.