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 14CBCDB8A for ; Thu, 1 Nov 2012 11:53:42 +0000 (UTC) Received: (qmail 71640 invoked by uid 500); 1 Nov 2012 11:53:41 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 71610 invoked by uid 500); 1 Nov 2012 11:53:41 -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 71600 invoked by uid 99); 1 Nov 2012 11:53:41 -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 11:53:41 +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 (athena.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:53:35 +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 10A8514091 for ; Thu, 1 Nov 2012 12:47:18 +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: <629F0E3A-6192-4555-90C9-379DA39E0161@dionne-associates.com> Date: Thu, 1 Nov 2012 12:53:17 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: 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 On Nov 1, 2012, at 11:01 , Bob Dionne = wrote: > 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.. Totally knowingly, intentional even. > 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 This seems contradictory to your previous statement. My document started = the "what" and "how it works" discussion just fine. Whatever is unclear = needs to be resolved *before* we jump into any implementation. > 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). Yup, we need to define how this fits into the plugin system. Maybe we = never to something like couchdb-lucene, maybe we do native plugins = first, and external plugins later, or the other way around. Thanks for = making this more explicit, I will add this to the document. > A plugin architecture, in my mind, should emerge from the code = refactoring and layout we're currently discussing. I respectfully disagree. I would like to start from the user and work my = way down. What ever internal refactorings make sense to support the = use-case, we will have to make. I trust that we are smart enough to make = this in a way that is favourable to the rest of the code base. I definitely want to stress that I=92d like to define the plugin feature = from the user down, not from the technology up. This doesn=92t mean = we=92ll bend over backwards to accommodate some crazy concept we draw = up, but I think it helps keeping in mind who we do this for is great for = making informed decisions rather than what=92s easier for the code we = have today. > 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 Excellent observations and points! Cheers Jan --=20 >=20 >=20 > On Nov 1, 2012, at 5:30 AM, Simon Metson wrote: >=20 >> +1 - keep it simple for the first iteration. =20 >>=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