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 98296DBAC for ; Thu, 1 Nov 2012 11:59:34 +0000 (UTC) Received: (qmail 89764 invoked by uid 500); 1 Nov 2012 11:59:34 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 89706 invoked by uid 500); 1 Nov 2012 11:59:34 -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 89691 invoked by uid 99); 1 Nov 2012 11:59:33 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Nov 2012 11:59:33 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [80.244.253.218] (HELO mail.traeumt.net) (80.244.253.218) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Nov 2012 11:59:27 +0000 Received: from rose.coup (unknown [178.19.216.162]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mail.traeumt.net (Postfix) with ESMTPSA id CBDA014091 for ; Thu, 1 Nov 2012 12:53:10 +0100 (CET) Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 6.1 \(1498\)) Subject: Re: CouchDB Plugins First Draft From: Jan Lehnardt In-Reply-To: Date: Thu, 1 Nov 2012 12:59:09 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <9BD90828-E701-45BC-8BF5-B7F49B282EED@apache.org> References: <40BCC84F-C695-492E-B56E-08C60955A3D8@apache.org> <3B2D6B8E471743B49554B23F98B8414C@cloudant.com> <629F0E3A-6192-4555-90C9-379DA39E0161@dionne-associates.com> To: dev@couchdb.apache.org X-Mailer: Apple Mail (2.1498) X-Virus-Checked: Checked by ClamAV on apache.org Benoit, Thanks a lot! You bring up a lot of great material to the discussion along with your expertise in writing and handling plugins in rcouch and related = projects. I=92ll comb through this thread and extract all relevant information = into the gist/wiki document. This is all great stuff! :) Jan --=20 On Nov 1, 2012, at 11:17 , Benoit Chesneau wrote: > there are also other plugins around : >=20 > https://github.com/benoitc/couch_randomdoc >=20 > https://github.com/benoitc/couch_zmq wich is using erlzmq >=20 > https://github.com/benoitc/couch_es >=20 > https://github.com/refuge/bigcouch_spatial >=20 > https://github.com/refuge/couch_dbupdates >=20 > https://github.com/ocastalabs/CouchDB-XO_Auth >=20 > .... >=20 >=20 > 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? >=20 > 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 . >=20 > 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. >=20 >=20 > - beno=EEt >=20 >=20 >=20 > On Thu, Nov 1, 2012 at 11:01 AM, Bob Dionne = wrote: >=20 >> Reminds me of my favorite book - "Sketches of an Elephant" >>=20 >> 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 or >> marketing view (perhaps knowingly). Here's how it will look the = buttons one >> will push, etc.. >>=20 >> 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. >>=20 >> Looking over the efforts to date, couchdb-lucene, and geocouch, these = two >> are quite different in terms of design, one is roughly loosely = coupled, the >> 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: >>=20 >> 1. the role of externals >>=20 >> 2 access to the storage layer (API?) >>=20 >> 3. separation from http layer >>=20 >> 4. support for code upgrades >>=20 >> 5. balancing of resources >>=20 >> 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 are >> actually extending the functionality in meaningful ways. >>=20 >>=20 >> On Nov 1, 2012, at 5:30 AM, Simon Metson wrote: >>=20 >>> +1 - keep it simple for the first iteration. >>>=20 >>>=20 >>> On Wednesday, 31 October 2012 at 23:40, Robert Newson wrote: >>>=20 >>>> 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). >>>=20 >>>=20 >>>=20 >>=20 >>=20