couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <>
Subject Re: Replacing the _external API
Date Sat, 25 Sep 2010 23:58:34 GMT
Already found and fixed a couple more bugs. The latest patch will
always be the last commit on this branch:

On Sat, Sep 25, 2010 at 7:28 PM, Paul Davis <> wrote:
> I've implemented the OS daemons feature and added some preliminary etap tests.
> Patch as commit is here:
> This feature affects zero functionality and is purely an addition to
> CouchDB. I'm tempted to just and commit it because of that but I'm
> gonna wait another day or two to see if someone comes up with a strong
> opposition to this line of development.
> Feed back desired.
> Paul Davis
> On Fri, Sep 24, 2010 at 6:20 PM, Filipe David Manana
> <> wrote:
>> Paul, you have my +1
>> cheers
>> On Fri, Sep 24, 2010 at 7:10 PM, Paul Davis <> wrote:
>>> At CouchCamp there was a bit of discussion on replacing the _external
>>> API with something a bit more modern to give _external processes more
>>> control over their environment.
>>> The idea was born out of a discussion with Robert Newson who mentioned
>>> that couchdb-lucene really only needs a reverse proxy to put itself in
>>> the same URL namespace. It occurred to us that having a reverse proxy
>>> instead of the current _external stdio protocol would allow lots of
>>> other interesting features like node.js integration, as well as allow
>>> implementors to handle requests in parallel and so on and such forth.
>>> The major drawback that was identified was that if we switched to just
>>> a reverse proxy, people would then be responsible for handling the
>>> process management of their _external handlers. Ie, they'd have to
>>> configure daemon monitoring to make sure the processes stayed up and
>>> what not. The solution we came up with was to include another feature
>>> that did process management. Ie, something that would bring up an OS
>>> process when the server booted, and respawn it if it crashed. There'd
>>> be no connection to the _externals. Other than the basic "just keep a
>>> process up" sort of behaviour, the only other thing I could see adding
>>> is a simple stdio protocol to get configuration values from CouchDB.
>>> Other people have expressed interest in just the process management
>>> functionality as well which makes me think that having the two new
>>> features to replace the _external API would be both easier on
>>> developers as well as providing more functionality.
>>> So now I'm looking for feedback on what other people might think of
>>> this. I'll start working on this fairly soon if I don't hear any major
>>> objections.
>>> HTH,
>>> Paul Davis
>> --
>> Filipe David Manana,
>> "Reasonable men adapt themselves to the world.
>>  Unreasonable men adapt the world to themselves.
>>  That's why all progress depends on unreasonable men."

View raw message