couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samuel Williams <>
Subject Re: Relaxo Ruby gem no longer targets CouchDB
Date Mon, 13 Feb 2017 05:38:23 GMT
Hi Adam, feel free to let me know what parts of the feedback were
confusion and I'll attempt to clarify.

Regarding the query server, I assume you mean that the query server
was refactored on the Erlang side, but I was under the impression that
the externally visible API is largely the same. I made some proposals
here ages ago
and of course I was hoping for discussion but essentially nothing
happened to improve the situation since I wrote that document 4 years

Some of the key points:
- Still does map well to the global scope imposed by languages like
Ruby, C++, etc.
- `rereduce` provides function directly while map use ddoc.
inconsistent and hard to compile AOT.
- No support for parallel computation or compression.
- Restricted to JSON which is a pretty major overhead for the query
server from my profiles several years ago.

Another big issue is the loss of the _bulk_save all or nothing API,
which I used for transnational updates. Without that API, existing
code that worked with 1.0 was broken.

The sharding made it a pain to set up and migrate existing 1.0 data
stores, yes probably my fault but it broke at least one production
site while I figured it out.

Web interface is still pretty limited, some regressions in
functionality in Fauxton, general lack of direction to improve things.

The idea of CouchDB being an application server largely ignored, left
to stagnate (e.g. lists).

It's my humble opinion that for CouchDB 2.0, for the common use case
that it appears to be addressing, Cassandra would be a better option.

But, look, what do I know. This is my opinion and take it with two
cents of salt :) I'm not trying to provoke an argument. I may be
misinformed, wrong, etc, it wouldn't be the first time.

Kind regards,

On 13 February 2017 at 17:28, Adam Kocoloski <> wrote:
> Hi Samuel, thanks for sending this note. I have to admit that I find some of the feedback
confusing — a new query server was one of the headline features of 2.0 — but that’s
neither here nor there. It’s good of you to provide a clear statement about the future of
the Relaxo projects. Cheers,
> Adam
>> On Feb 11, 2017, at 5:48 PM, Samuel Williams <>
>> My bad, the gem actually "Relaxo::QueryServer" :) But I'm sure no one cares.
>> On 12 February 2017 at 11:46, Samuel Williams
>> <> wrote:
>>> Hi Guys,
>>> It's with a heavy (and slightly frustrated) heart that I've decided to
>>> stop investing time and effort into CouchDB. The 2.0 release moves
>>> further away from the core principals of CouchDB that made it
>>> attractive to me. In addition, a lot of issues in the core design of
>>> CouchDB (e.g. better query server & schema) seem to be ignored for
>>> years and so I've given up hope that there would be improvements.
>>> I'm not trying to be negative too much, the 2.0 release looks really
>>> great in a lot of ways - it's simply not what I'm after for my
>>> personal projects.
>>> The main point of this email is regarding the gems I maintained and published.
>>> For several years, I maintained an unpopular set of Ruby gems:
>>> "Relaxo", "Relaxo::Model" and "Relaxo::Query::Server". They are not
>>> used much but they were pretty decent client libraries. I'm
>>> refactoring the first two gems (never had a 1.0 release) as a Git
>>> based transactional database. So, from the next release (probably
>>> 0.6.0), they will have breaking API changes and no longer work with
>>> CouchDB. The third one - Relaxo::Query::Server, may be modified to be
>>> a git-based map-reduce server, so eventually that will be unavailable
>>> too.
>>> I'm just wanted to let anyone know, officially, what's happening with
>>> these gems as I feel it would be unfortunate for someone to be
>>> depending on them and not know what's happening or why. If you are
>>> stuck using these gems, know that they are now unmaintained in their
>>> current form, but you can pin to version "~> 0.4.0" and things would
>>> keep working. In addition, I've updated the confluence wiki to point
>>> to the best other option I know of (Couchrest) and removed links to
>>> these gems. When I update these gems, later today, they should not be
>>> published on the CouchDB news feed as they are no longer relevant.
>>> Thanks so much everyone.
>>> Kind regards,
>>> Samuel

View raw message