Earlier quoted context omitted.
We tried to use it alongside pouchdb to provide offline first experience. We ran into a lot of issues, mainly with pouchdb bugs. Then after reading this list [1] of issues in the couchdb architecture we decided to ditch it and stop trying to make pouchdb work. [1] https://news.ycombinator.com/item?id=17115649
Out of curiosity, if you would like to start a new, offline-first project that needs syncing, which database would be the best candidate today?
CouchDB 3.4.1 Released
41–47 of 47 posts
Re: CouchDB 3.4.1 Released
#42Earlier quoted context omitted.
Out of curiosity, if you would like to start a new, offline-first project that needs syncing, which database would be the best candidate today?
One interesting idea I’ve seen is none[1]. That’s definitely more on the exploration side than the shipping one, though. [1] https://tonsky.me/blog/crdt-filesync/
What ended happening is that both developed their own custom shi*ty database engines because it turns out that things like indexes are just generally pretty useful, but doing them right is pretty damn difficult. I'm pretty sure that if Linus/git chose e.g. SQLite instead of "flat files", we'd have way fewer data corruption problems, and a more capable/extensible git.
Re: CouchDB 3.4.1 Released
#43Re: CouchDB 3.4.1 Released
#44Re: CouchDB 3.4.1 Released
#45Earlier quoted context omitted.
> ...replication protocol that allows you to synchronise casually connected instances... That single featurte right there was why i first had started playing with couchDB several years ago. It really had been quite awesome! I think other features that help it really help with offline-first approaches also are really cool! But, ultimately, after playing with it (and really liking it), i just didn't have a need for too…
No offence taken, SQLite is great technology :) — My company makes a (commercial) CouchDB add-on based on SQLite to add SQL queries to CouchDB (link provided for informational purposes): https://neighbourhood.ie/products-and-services/structured-qu...
Re: CouchDB 3.4.1 Released
#46Earlier quoted context omitted.
One interesting idea I’ve seen is none[1]. That’s definitely more on the exploration side than the shipping one, though. [1] https://tonsky.me/blog/crdt-filesync/
I can think of two complex pieces of software which intentionally shunned databases thinking they can just do its thing in "flat files" - git and DokuWiki. What ended happening is that both developed their own custom shi*ty database engines because it turns out that things like indexes are just generally pretty useful, but doing them right is pretty damn difficult. I'm pretty sure that if Linus/git chose e.g. SQLite…
All that is beside the point, though: the article above is not about using or not using flat files as a storage primitive, it’s about using files of whatever nature as a replication and version reconciliation mechanism, in view of the fact that concurrent editing is inevitably application-specific, so we might as well lean into it instead of leaving it to a database. In that sentence, “a database” is not just any database, it’s one of a very short list of multimaster databases with relatively loose schemas, which includes CouchDB and—among legitimately FOSS projects—I’d struggle to name more.
This is not a decision about data storage at all, in other words. It is a decision about protocols. Experience shows that the alternative does not end up being an off-the-shelf database (even CouchDB, which does seem like a major road not taken looking back at Canonical’s efforts a decade ago), the alternative is usually a central synchronization server speaking a custom protocol. (CalDAV, CardDAV, Bitwarden, etc.)
And if you want to do your CRDT or OT or whatnot over per-client SQLite databases instead of per-client text files, all the more power to you.
Finally, I tried to phrase my comment above in a way that makes it clear that it’s a suggestion of a direction to have fun in, not of a principle to architect your production app around. So the sneering in your comment is... honestly disheartening to read. Like, do people even hack anymore? I know they do, but every time I read something like this I become a little bit less sure of it.
Re: CouchDB 3.4.1 Released
#47Curious to hear who is using it still. I experimented with it 2010/2011 IIRC but never build a real project with it.
I was naive when I chose it (I was just starting to program then), but it has served me well. It's replication feature is simple to setup and is robust. It uses a REST API for any calls to the database, and it is a well designed API. I don't use all its features, but I really like it for the ones I use.