Don't want to be accused of being a shill (I'm not, I'm just a fan), but if you're looking for potential alternatives to RethinkDB, Couchbase (the company that was formed when the MemcacheD and CouchDB folks joined forces) offer a totally open source realtime-sync API/SDK (cross-platform: mobile, web, you name it).
Couchbase is a very very different product under the hood. Be aware you have to run Couchbase with their minimum spec cluster requirements ( 3 nodes, tons of CPU and RAM ) just to ensure you don't lose data because it syncs from ram to disk at best every 100ms
Hod @ Couchbase here. This is inaccurate. Couchbase does not delay in writing to disk (some other dbs do). You typically want 3 nodes for high availability and failover, but it isn't required. Auto replication can also help avoid loss in many failure scenarios.
This is complicated, because you're intertwining Sync Gateway and Couchbase Server.
Couchbase Server queues writes immediately. The default is to ack once a write is in Server memory, but you can choose other options. See the response from daschl in that thread.
I see what you were trying to get at with your question. I'm not sure we clarified enough what's going on. I'll respond on the forum.
The deal-breaker for me with couchbase is that the community edition lags (in terms of bug fixes, security updates, etc) 8-10 months behind their commercially licensed offering.
1 - Unabashedly, our #1 commitment is to our customers who are relying on Couchbase for their mission critical applications. That's why the Couchbase Enterprise Edition gets the bulk of our attention and testing.
2 - History can show that's it's actually more like 3-6 months of delay rather that 8-10 and corresponds more to our release cycles than to an artificially imposed delay.
3 - Couchbase major releases has always had CE and EE in sync.
4 - Couchbase CE is provided as a service to the community. Users who want to rely upon their own expertise to run a database in production have a responsibility to themselves and their organization to have the appropriate level of skills to do so. That should mean being able to debug and fix bugs themselves. In fact, our open source code base does not lag AT ALL and anyone is welcome to build off of that themselves and get all of the latest and greatest features (and bugs of course). If they're not willing to do this, they should be paying us to.
3 is not quite true. tried deploying CE at scale at my last company, ran into a gnarly limit on concurrent connections the db cluster would handle.
It was a hard coded, undocumented limit on the CE version.
not sure if this still exists. but it took some digging into the source, and monkey patching to fix.
Hod @ Couchbase here. EE would have had the same limits. If this is the limit I'm thinking of, it's there for a reason (defensive against malfunctioning implementations, and very rarely something that should be exceeded). It was increased at some point (not sure when). But CE is not crippled relative to EE.
Ehh, on the Memcached side it was a few contributors (including two major ones, iirc). They're great engineers, but I don't think it's accurate to call them "the Memcached folks".
As far as I know, Memcached's longtime maintainer / primary contributor (dormando) is not involved with Couchbase, and neither is Memcached's original creator (bradfitz).
It's more like "one of the memcached contributors", rather than "all the memcached folks".
Couchbase was a merger between NorthScale and CouchOne. The CouchOne founding team were all CouchdDB project founders: Damien Katz, J Chris Anderson, and Jan Lehnardt. NorthScale was founded by Steve Yen, who was an Entrepreneur in Residence at Accel, and Dustin Sallings, who was a committer on the Memcached project.
The first product that NorthScale released was called Membase, and the point of it was to help companies run large memcached clusters without having to think very hard. Couchbase later evolved into a hybrid of Membase and CouchDB that can speak the memcached protocol but also has some of the JSON document database properties that CouchDB has.
Trond Norbye and I were also pretty involved with the memcached project, both joined NorthScale and we're both still part of Couchbase. Trond in particular did a lot of work on the server and I did a lot of work with the java client and helping people.
Steve Yen was doing a lot and fixing bugs and wrote moxi, a memcached proxy that was very useful in the early days.
With the CouchOne merger, we moved a lot of the proxy topology independence into clients and added a lot more.
The guy who's work was originally the basis for Augur has some interesting things to say about that project (and is working on his own implementation of a Bitcoin-based prediction market): http://www.truthcoin.info/faq/
I've been following (and using) the betas for all this stuff for well over a year now, and while it was already pretty awesome back then, watching the evolution and continual imrpovement of it all has been amazing.
In one sense, I think the Couchbase syncing tech is the way mobile development should have always been. It just makes sense. The fact that there hasn't been a reasonable way to do any of this till now is pretty crazy: iCloud is a ridiculously unreliable black box where you have no real control of your data, Dropbox "syncing" is even more limited and is basically just crappy hack, and other "sync solutions" I've seen have been even more unusable still.
Props to the Couchbase team for continuously pushing the limits of this tech without compromise, and being open source all along the way.
tvon, if you live in Mount Vernon, you should try and check out http://www.twitter.com/CoworkCharles as well. It's a bunch of techies getting together to cowork at coffeeshops with free wifi along Charles Street, happens about once a week.
Link: http://www.couchbase.com/nosql-databases/couchbase-mobile