Atomic transactional properties of Obsidian Sync under difficult network conditions?

I’m a new user and I’d like to know the semantic guarantees of the Obsidian Sync service in the presence of difficult network conditions. This is not a theoretical problem (and I’m an Evernote refugee exactly because of sync problems): when travelling by train in Europe, for example, 4G network connections are often intermittent in rural areas; ditto for wifi service aboard transatlantic flights.

Consider the following scenario involving Client_1, Client_2, and Server, all of which start out having identical content v1 of a note Note_A.

  • I edit Note_A offline on Client_1, with new content v2.

  • I go online and Client_1 starts to sync by pushing v2 of Note_A.

  • Is this atomic? If the network fails halfway, will Server store a corrupted version of Note_A (i.e. neither v1 nor v2)?

  • If Client_2 syncs, will it pull this corrupted version or will it only see v1?

  • If I rename the title of Note_A to Note_B on Client_1 when offline and then sync, is this rename atomically performed on Server?

  • It appears from the sync logs that a rename is treated as a delete followed by an upload. If the sync is interrupted, can Server be in a state where Note_A is deleted but Note_B hasn’t yet been created? If Client_2 then syncs, will it pull the deletion of Note_A but not the newly created Note_B?

More generally, are there traditional database-style ACID guarantees of sync transactions for Obsidian?

If not, what are the failure modes?

Thanks so much!

This is atomic.

There is no rename. The single operations are delete and create.
The failure modes are sync history and file recovery plugin.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.