Personally, the “all files in source were deleted so let’s sync that to the destination” problem is the biggest one I’m aware of. A few people have shown concern that a sync could happen while Duplicati is still uploading a file, but I suspect either rsync will be smart enough to not sync a file that’s in use or (worst case) it will sync the half-written file then sync the rest of it on the next, um, sync.
For some people that might be a problem (having a window of failed restore possibility) but for me it’s small window with a small potential number of affected file versions.
A do believe a few users have set up rsync or Syncthing to do what you’re describing so it’s certainly not unheard of. The biggest thing I think people should be aware of is that IF you have to restore from the “2nd level” backup location then you’ll either have to make it exposed so that Duplicati can see it as a destination OR you’ll have to manually move/copy all the files to a somewhere the Duplicati can see.
I haven’t used rsync personally, but I suspect there might be an option to tell it to NOT sync file deletes, which should help with that worry. However that could also cause issues if you need to restore from the “2nd level” location as Duplicati will likely see old files it thought it had cleaned up and complain about them.
I think I might be mis-understanding your question about “a resume function”… regarding the asynchronous-upload parameters
–asynchronous-upload-folder= (default)
The pre-generated volumes will be placed into the temporary folder by default, this option can set a different folder for placing the temporary volumes, despite the name, this also works for synchronous runs
–synchronous-upload-limit=4 (default)
When performing asynchronous uploads, Duplicati will create volumes that can be uploaded. To prevent Duplicati from generating too many volumes, this option limits the number of pending uploads. Set to zero to disable the limit
Duplicati jobs run one-at-a-time, so if the current job isn’t done uploading everything then the next job won’t start.
I thought I saw somewhere that somebody was trying to add rsync as a destination type, but I can’t seem to find the post (here or on GitHub) at the moment. 