Hey Andrei,
thank you for this beautiful app! It’s well thought through and I have been evaluating it for a few days with the goal of getting a Pro license if I’m satisfied Everdo can replace my previous GTD workflow.
My setup:
- Have been using the app for 5 days and have about 50 tasks in different states
- Local Network Sync
- PC Linux01 (my desktop at home) the “server”
- PC Linux02 (my laptop) one “client”
- Smartphone Android01 another “client”
I successfully synced a few times between the the devices, then did not sync for about 48 hours and yesterday I noticed that there is one task on Android01 that can’t be synced to Linux01 and is therefore also not visible on Linux02. I tried hitting the “sync” button several times.
I am aware that you describe a solution in the documentation! Namely I could just force push from Android01 to Linux01 and problem solved. But please hear me out.
What I am afraid of is data loss. I need to be able to trust my tool in that respect. That may be the most important feature to me.
What would happen if the problem I am now facing appears simultaneously on Android01 and Linux02, but affecting different tasks? Unless I am much mistaken there are two alternatives:
- I never notice, so some tasks are never synchronized between the devices, which in a way is also a data loss because the tasks would not be available when and where I need them, making me miss something important
- I notice the issue on Android01 on day 1 and I force push. Some days later I notice the issue on Linux02 and again force push. The problematic task that initially came from Android01 would then be forever lost.
Please correct me if I’m wrong in my above description.
My expectation, in order of preference:
- This problem never occurs. Conflicts are automatically solved via the latest modification (a reasonable design choice in a single-user system IMHO) but it is ensured that data is never lost.
- When something can’t be synchronized (e.g. because of a conflict) I get a dialog in the UI that let’s me decide what final state I want and forces me to make a decision for every item that is in conflict.
- I get an error message with a precise description of the items that are in conflict (or can’t be synced) with the instructions “Please resolve conflicts for items X, Y, Z, … on your device and then force push”.
Some questions:
- Are you working on solving this issue?
- Is the ESS more robust or does it use the same synchronization mechanism? I’m aware that simply by virtue of higher availability such conflicts would be much less frequent, but even when using ESS it’s possible that some of my devices are offline for several days.
- Can you give some more technical detail why this problem exists (in the hope of being able to mitigate it my adjusting my own behaviour)? I have a solid background in software development, networks and HTTP apps, so feel free to go into details.
- Is this problem limited in any way? If I’m trying to verify that no data loss has occurred, could I limit my search to certain locations?
- Is there anything I can do to eliminate the problem?
Again, let me re-iterate how much I appreciate your work. I think the UI is beautiful, I think it’s great that you have been keeping up a constant stream of updates over the years, making the app better and better. “Local Network Sync” and end-to-end encrypted ESS are truly great features! Making data import and export so easy, as well as storing everything in a SQLite database mitigate my fears of being locked in. And last but not least how active you are in this forum, quickly answering and resolving support requests is very reassuring.
Cheers
Omar