It's astonishing to me how difficult it (still) is to design a syncable local-first data model.
I keep thinking I've found a decent way, then realizing its flaws, then despondently noticing that the flaws were already discussed in Ink & Switch's article: inkandswitch.com/local-first.ht
Conversation
Arguably things are even worse than discussed in that article. Take Firebase, for instance: it implements offline caching, but that's very different from sync. You have to design a whole replication strategy on top to get something like "a synced file format."
1
20
CouchDB seems like the closest solution, if you can design a conflict-free model. But I spent the last week getting into the details of actually operating a multi-user service, and I am now quite thoroughly spooked!
8
30
Did you consider a eventsourced system ? Pushing only the changes around may give some (eventual) consistency.
1
Replying to
Yep, that's what I do now, but it's still consuming a huge amount of complexity.
Replying to
My experience is that it’s quite an amount of work with less technical complexity to work around. Although the eventsourced system as such adds complexity for sure.
1

