Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 60DE6D93C for ; Thu, 1 Nov 2012 10:17:32 +0000 (UTC) Received: (qmail 36992 invoked by uid 500); 1 Nov 2012 10:17:31 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 36960 invoked by uid 500); 1 Nov 2012 10:17:31 -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 36930 invoked by uid 99); 1 Nov 2012 10:17:30 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Nov 2012 10:17:30 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of bchesneau@gmail.com designates 209.85.223.180 as permitted sender) Received: from [209.85.223.180] (HELO mail-ie0-f180.google.com) (209.85.223.180) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Nov 2012 10:17:26 +0000 Received: by mail-ie0-f180.google.com with SMTP id e10so3220894iej.11 for ; Thu, 01 Nov 2012 03:17:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=m/hPvlYyQEYD6SNlI64xwDfwmXjTxwAhOQrz02NaikI=; b=J+hX8HBcri2lUAowzGkgUZkpnlBwymutkMLn38D/OOXmwWI5dQD+XzEiG9kwslFk1M 0GsRw+iYaJgyo6SZp94Nx+bNXHJ79qKalR/P/+rTqZW2wWxYaKR7+1cCBGW+LU2Vf+Bc KxVlCxqh6F4dq7+GTr0PwiZgzOMfsIX1a2I3ni6A7WUjJ79p5pJFt5OAu/GfkgFYqlWY gaXGuNBby2SiphM1ICcssb25uMoXaNAhnGLmMIivwjPukxAV0K23Pg+x/ggOedhbFR33 cUidv7ttk+l1opnpRrAxLbgWef99JA/4xNpNPL2zpACU3qSZZyhSTJ5AD0HVDZ+Oh5s6 6Vhw== MIME-Version: 1.0 Received: by 10.43.52.193 with SMTP id vn1mr34318038icb.5.1351765025882; Thu, 01 Nov 2012 03:17:05 -0700 (PDT) Received: by 10.64.77.196 with HTTP; Thu, 1 Nov 2012 03:17:05 -0700 (PDT) In-Reply-To: <629F0E3A-6192-4555-90C9-379DA39E0161@dionne-associates.com> References: <40BCC84F-C695-492E-B56E-08C60955A3D8@apache.org> <3B2D6B8E471743B49554B23F98B8414C@cloudant.com> <629F0E3A-6192-4555-90C9-379DA39E0161@dionne-associates.com> Date: Thu, 1 Nov 2012 11:17:05 +0100 Message-ID: Subject: Re: CouchDB Plugins First Draft From: Benoit Chesneau To: "dev@couchdb.apache.org" Content-Type: multipart/alternative; boundary=bcaec529a0b130020004cd6c5291 X-Virus-Checked: Checked by ClamAV on apache.org --bcaec529a0b130020004cd6c5291 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable there are also other plugins around : https://github.com/benoitc/couch_randomdoc https://github.com/benoitc/couch_zmq wich is using erlzmq https://github.com/benoitc/couch_es https://github.com/refuge/bigcouch_spatial https://github.com/refuge/couch_dbupdates https://github.com/ocastalabs/CouchDB-XO_Auth .... So on erlang the situation is quite complex. As a free reminder when we spoke about rabbitmq plugins in january, nobody wanted that which let me perplex. Like I said do we we want a plugin system or just a way to load app? About couchdb-lucene for example it could be rewritten to use more of the internals of couchdb. And probably using jinterface instead of living externally so it could be better integrated. (This is just an example of what could be done) . couch_es could be fully written in elixir or js and distributed as an internal couchapp. Same for random doc etc . Imo when we speak about plugins we should have in mind the of their deployement. This is one thing to install a plugin on a machine , another to make sure that this plugin is installed on others machines. And when I say other machines I'm not only speaking about machines in your lan (some of us have tools and people for that) but machines of remote possibly stranger people replicating your data . ANd this part is definitely not possible easily with something like rabbitmq plugins. - beno=EEt On Thu, Nov 1, 2012 at 11:01 AM, Bob Dionne w= rote: > Reminds me of my favorite book - "Sketches of an Elephant" > > Jan, thanks for putting a stake in the ground, I've wanted to see this > forever. The proposal in my mind takes too much of a product management o= r > marketing view (perhaps knowingly). Here's how it will look the buttons o= ne > will push, etc.. > > I think the "what" and "how it works" are important to decide on first, > .eg. @rnewson's suggestion for something like RabbitMQ. Reading the docs > for that, the "what" is much clearer. > > Looking over the efforts to date, couchdb-lucene, and geocouch, these two > are quite different in terms of design, one is roughly loosely coupled, t= he > other more native (in the same VM). A plugin architecture, in my mind, > should emerge from the code refactoring and layout we're currently > discussing. We should ask and answer questions such as: > > 1. the role of externals > > 2 access to the storage layer (API?) > > 3. separation from http layer > > 4. support for code upgrades > > 5. balancing of resources > > I didn't mention Auth and Logging as I think these are separate in terms > of concerns, more system oriented. Whereas geocouch and couchdb-lucene ar= e > actually extending the functionality in meaningful ways. > > > On Nov 1, 2012, at 5:30 AM, Simon Metson wrote: > > > +1 - keep it simple for the first iteration. > > > > > > On Wednesday, 31 October 2012 at 23:40, Robert Newson wrote: > > > >> I quite like the rabbitmq approach (a lot like the apache httpd > approach). > >> you can enable/disable/list plugins but the tool doesn't include the > >> downloading and managed repository bits, which is a huge rabbit hole > (pun > >> intended). > > > > > > > > --bcaec529a0b130020004cd6c5291--