Maybe we don't need a server

54 points by abnercoimbre


cesarandreu

File system is the wrong abstraction level for application developers, you'd just be ignoring the problems with synchronization and transactions, expecting them to hand roll their own solution.

A few years ago I remember reading through the Fuchsia docs and they had a Ledger concept [0] for maintaining synchronized state across applications. Of course, this being a Google project it had a dependency on the cloud, but you could move that over to an authoritative home / main node. It's worth reading through their docs and examples because they seemed to actually be trying to solve the data synchronization problem for a multi-device world.

Apple has their own solution with File Provider extensions, but my brain shuts off when I try to read through their terrible docs so I haven't been able to compare and evaluate.

Another unresolved issue is what to do when multiple application developers are interacting with your files and they cannot agree on a common interface and conflict resolution strategy. So maybe Apple is directionally correct with their File Provider concept, and you could build a standard extension for various file types which developers then build upon for their own applications. Sounds a bit cursed.

Personally, I feel a bit defeated so I've just resigned myself to running Tailscale with Syncthing for note synchronization. Since I only ever edit files on one device at a time and they're already synchronized I avoid any pain, but that's just me coping with the inadequacy of my solution.

[0] https://github.com/OpenTrustGroup/fuchsia/blob/master/src/ledger/docs/README.md

msangi

I really like Syncthing but there is a thing to watch out if you want to use it as an alternative to a server: data is synced only when devices are online at the same time. Depending on the use case it might or might not be an issue