FYI: BaseCouch

72 views
Skip to first unread message

Jens Alfke

unread,
Oct 25, 2012, 1:43:22 PM10/25/12
to mobile-c...@googlegroups.com
I’ve been prototyping something called “BaseCouch”, which acts as glue between CouchDB or TouchDB and Couchbase Server 2.0. If you’re not familiar: Couchbase 2.0 builds on the insanely fast/scalable Membase data store, and adds the b-tree and view engine from CouchDB for persistence and querying. It was initially going to be fully compatible with CouchDB, but during development some features (primarily MVCC) were sacrificed to preserve Membase’s speed. Of course this means it isn’t compatible with CouchDB replication.

As an unofficial experiment I decided to see how hard it would be to write a little server that would pretend to be CouchDB but store its data in Couchbase. It wouldn’t need to support the entire REST API, just the parts that are called by the replicator; then a remote CouchDB (or TouchDB or PouchDB) could connect to it and push/pull data.

A month and ~2500 lines of Go code later, I’ve got something that basically works. It supports push and pull replication, conflicts, and attachments. I wouldn’t call it “alpha” yet, but it’s far enough along that other people might be interested in trying it out or extending it.
I repeat that this is an experiment, not a Couchbase product or even an indication of future product features. I had management blessing to try this out, and it’s already sparked some interesting discussion. And it gave me a chance to learn the Couchbase API and try out Go :)

—Jens

Paul Capestany

unread,
Oct 25, 2012, 11:43:47 PM10/25/12
to mobile-c...@googlegroups.com
I wanted to report that I got BaseCouch working with TouchDB (by way of CouchDB) with only one minor issue. This definitely gives me a reason to finally start learning about CouchBase! Super exciting :)
Reply all
Reply to author
Forward
0 new messages