27 ms·
I love offline systems. IoT is everywhere, garage doors should not need the internet. SyncThing is one of my biggest inspirations in software. They are one of
by eternityforest 4y ago
I love offline systems. IoT is everywhere, garage doors should not need the internet. SyncThing is one of my biggest inspirations in software. They are one of the only projects I consider truly getting P2P right, ever, and there's a nice ecosystem of stuff people have been doing with just that one primitive of a folder that syncs.
A lot of the time it seems like you really don't need advanced conflict resolution, if you change your actual UI model to be inherently parallel, which you often can.
A collaborative document editor is hard. A forum that lets you post offline is easy. At worst a conflict will get a few out of order posts, which is not an issue if people use @references, reddit style trees of comments, or there's low enough volume that it's unlikely to be confusing. Post race conditions already exist in forums anyway.
There's a lot of low hanging fruit in P2P and offline first, and everyone seems to be mostly doing the hard stuff like cryptocurrency instead.
- myself248 4y ago> there's a nice ecosystem of stuff people have been doing with just that one primitive of a folder that syncs. Ooooo, got links? Out of curiosity, how heavyweight is Syncthing, computationally? Could it run in an ESP32? I've used that same "folder that syncs" concept in some of my own designs which I would love to push down to smaller hardware...
- eternityforest 4y agoMost of the stuff is notetaking, people will use markdown based tools and sync them. That's what I do with Obsidian, but it seems like pretty much every flat file app on Android has a lot of SyncThing users. I haven't looked into the internals of ST all that deeply, partly because IIRC it's written in Go(Like so many P2P apps) and I'm not familiar with it. From what I know of it, you could probably port it, just because the ESP32 is really powerful, but it would be a big rewrite. IIRC ST uses some kind of embedded database, not SQLite but similar-ish, I think it might be NoSQL. I looked into it at one point because I wanted to add some features, but abandoned that when I found out how committed the devs are to sticking to the core functionality only. I think if I were going to push it to ESP32(Which seems like an amazing idea) I might look into a custom embedded-first protocol. It would be amazing if SyncThing could add support for a lite version of the protocol, but I doubt they would. The community seems to not mind forks though, maybe someone can make a "SyncThing for IoT" fork?