Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yeah, it’s a document database, uses UUIDs and revisions for identification and does HTTP-based P2P replication. In Hoodie we abstract that away in a simple to use `hoodie.store` object with the usual `add()`, `update(), `find()`, `findAll()` methods for operations. No need to know about the CouchDB/PouchDB specifics, just store your objects :)


Okay, but the key design decision in any data syncing library is how it resolves update conflicts. Is it last-one-wins, report an error and try again, diff merging, or maybe some kind of operational transform?

Since that's the heart of the problem being solved, it's weird when the docs leave it out.


Excellent point. We will make this more clear.

Conflicts are detected for you, like in version control systems. You need to resolve them yourself, or you can implement a server-wins/client-wins/last-write-wins scenario, if you want to.


Operational Transformation does not work offline at all, and offline seems to be at the heart of Hoodie. OT requires a central point of coordination. That's why the current Google Docs freezes editing if your connection goes. For offline syncing, you need to use CRDTs.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: