Hacker News new | ask | show | jobs
by dharmaturtle 1812 days ago
Hah - you're describing "event sourcing" and it's the technique I'm using: https://flpvsk.com/blog/2019-07-20-offline-first-apps-event-...

Unfortunately event sourcing means distributed systems... and I'm learning this on the fly on nights & weekends. Martin Kleppmann's "Designing Data Intensive Applications" has put the fear of god in me.

1 comments

Yup, I'm doing event sourcing.

For my approach, I really just have each device append to its own journal file. I use iCloud's file storage, so I don't even have a service that I run. Each peer device just uploads the latest version of its journal to a shared folder and downloads its peers' journals and plays back the delta as needed.

I intentionally chose this architecture since I didn't want to run my own sync service. It keeps the sync system free, but iCloud can be slow. Unfortunately for me, if iCloud is slow, the app gets blamed for it.

Nice. Just checking, did you not go with firebase/couchdb/pouchdb due to pricing?
Yes. Anything that required me to pay would mean I'd have to charge a subscription from users, which I didn't want to do.