I am struggling to differentiate between all of the different couch* technologies that are out there. I've been flip-flopping between using CouchDB and using Couchbase Server for an Android game that I'm developing and the lack of documentation is frustrating.
My understanding of the technologies:
CouchDB - A no-SQL database that has been under development for the last few years and is communicated with using a RESTful API. It has been abandoned by its chief developers in favor of working on Couchbase Server.
Couchbase Server - An enterprise solution to a large database where low-latency is paramount. It keeps 'hot' data in memory using memcached but data is persisted to a CouchDB database.
Couchbase Mobile - A mobile implementation of CouchDB <--Legacy
TouchDB - A mobile implementation of CouchDB.
Ektorp - A framework that allows a developer to talk to and sync with a CouchDB instance from Java.
What's missing in my list is a framework to talk to Couchbase Server from Android (and eventually iOS).
Does such a framework exist?
To sync an application to Couchbase Server, typically an application built atop TouchDB, the framework you're seeking is Mobile Syncpoint as listed on the Couchbase wiki. It's an Open Source work in progress, but coordinates for dev mailing lists, and concepts link off of that wiki.
Typically you'd use Ektorp atop TouchDB, then use Mobile Syncpoint to sync to Couchbase Server running in a datacenter somewhere.