Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 75454 invoked from network); 24 Sep 2010 22:21:27 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 24 Sep 2010 22:21:27 -0000 Received: (qmail 77579 invoked by uid 500); 24 Sep 2010 22:21:27 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 77532 invoked by uid 500); 24 Sep 2010 22:21:26 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 77524 invoked by uid 99); 24 Sep 2010 22:21:26 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Sep 2010 22:21:26 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of fdmanana@gmail.com designates 209.85.215.180 as permitted sender) Received: from [209.85.215.180] (HELO mail-ey0-f180.google.com) (209.85.215.180) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Sep 2010 22:21:20 +0000 Received: by eya25 with SMTP id 25so1239885eya.11 for ; Fri, 24 Sep 2010 15:20:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:content-type:content-transfer-encoding; bh=qitTnj3VZDcg9u2ksz5crsjvibWpX6EhM16hZAU9jhw=; b=rneo/Kt47V33vBYLcpHAo/nb81wzMOrrfctFjtVbJoxiqUSpTvvEhrWvGIF0EvKOs2 WpPaRoTXMk7KVTORevzHmUOIj6MnO5MksHUwenqmlUfODVE4tBpdhIKnKDZorLbkSxA7 FtB7xnotzqiieHSafUh1AgoFp5gZOzN1ZZ0oU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; b=gw4/N1v8PCjbVlPAxR4x9ko11Lqsh36Rt0q377C9wG1EAtTmPPRZHtJCevnO9iQt4i Vc/aaxoMTmV5ZOct/MW9XOnN0DdlkgoU2KG1yQHJrItassdOkzkvYe3mL/qnuKO7eSJQ X+/GGNnbAb2tjbjFNDaDGonMhxfZ3fxIPXH0o= MIME-Version: 1.0 Received: by 10.213.108.73 with SMTP id e9mr820789ebp.36.1285366858691; Fri, 24 Sep 2010 15:20:58 -0700 (PDT) Sender: fdmanana@gmail.com Received: by 10.213.13.13 with HTTP; Fri, 24 Sep 2010 15:20:58 -0700 (PDT) In-Reply-To: References: Date: Fri, 24 Sep 2010 23:20:58 +0100 X-Google-Sender-Auth: EsFNJtwaLG_ZHiA7YJ7legaFhZo Message-ID: Subject: Re: Replacing the _external API From: Filipe David Manana To: dev@couchdb.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Paul, you have my +1 cheers On Fri, Sep 24, 2010 at 7:10 PM, Paul Davis w= rote: > 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 > --=20 Filipe David Manana, fdmanana@gmail.com, fdmanana@apache.org "Reasonable men adapt themselves to the world. =C2=A0Unreasonable men adapt the world to themselves. =C2=A0That's why all progress depends on unreasonable men."