Return-Path: Delivered-To: apmail-incubator-couchdb-user-archive@locus.apache.org Received: (qmail 68187 invoked from network); 19 Jun 2008 07:04:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Jun 2008 07:04:52 -0000 Received: (qmail 19951 invoked by uid 500); 19 Jun 2008 07:04:54 -0000 Delivered-To: apmail-incubator-couchdb-user-archive@incubator.apache.org Received: (qmail 19919 invoked by uid 500); 19 Jun 2008 07:04:54 -0000 Mailing-List: contact couchdb-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: couchdb-user@incubator.apache.org Delivered-To: mailing list couchdb-user@incubator.apache.org Received: (qmail 19908 invoked by uid 99); 19 Jun 2008 07:04:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Jun 2008 00:04:54 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of schickb@gmail.com designates 209.85.200.170 as permitted sender) Received: from [209.85.200.170] (HELO wf-out-1314.google.com) (209.85.200.170) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Jun 2008 07:04:04 +0000 Received: by wf-out-1314.google.com with SMTP id 27so729526wfd.21 for ; Thu, 19 Jun 2008 00:04:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :x-enigmail-version:content-type:content-transfer-encoding; bh=I0U0soVj6OvyZw1zYH0tqeH9iaei6Z4IpMvYPD0rg+c=; b=Pci5WU+ppzXdmqxvnYEes45OnwP+07dzVx82sJVGllYlRd/fE/kgslHOlRlvEkJOGE qQZR+7r5HKUA6UBzOlvt7sk91Geq8NW1/TsnvI78u9IkQji8B+7w7t9WEBrS4G00qS6I iYf2jQaI+xQgnP5R7dv0geYzTaxrcjFuZAeGo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=tQ+OEl5LzVUMbX8f4VA0ckmHS1ZbCGw6J2d1lxsK/unubqg434HDyz3T8nZSOobGMF 5KWG+pQ/C7w05+Az8gmTjhnS4i9kMFFlURJiYBgfxUmYHUHJ6oXzxaWaEGRUtBlyHi0I hG4rAnLI6k4x1X2XBOiMkt5+SCx25jItBqAHE= Received: by 10.142.185.13 with SMTP id i13mr755549wff.219.1213859063133; Thu, 19 Jun 2008 00:04:23 -0700 (PDT) Received: from ?192.168.0.199? ( [216.254.20.116]) by mx.google.com with ESMTPS id 24sm477191wff.17.2008.06.19.00.04.22 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 19 Jun 2008 00:04:22 -0700 (PDT) Message-ID: <485A0521.5070303@gmail.com> Date: Thu, 19 Jun 2008 00:05:05 -0700 From: Brad Schick User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: couchdb-user@incubator.apache.org Subject: Re: gathering requirements for the plugin system References: In-Reply-To: X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org On 6/18/2008 9:25 PM, Chris Anderson wrote: > We've been talking a little in the IRC channel about the plugin > system. It doesn't exist yet, so we're trying to figure out what use > cases it needs to support. I've started a wiki page to gather ideas, > and please also discuss things here. Anything you'd like to do with > CouchDB that isn't really part of its core functionality, could be > supported in a plugin. Also, some of the core features will be > supported by the plugin system as well (as far as I have gathered from > the IRC discussions). These include the view servers and the search > servers. > > The wiki page: http://wiki.apache.org/couchdb/PluginAPIUseCases > > The goal is to have the foundation for plugins ready for the 1.0 > release (I think, based on the IRC discussions.) > > Sounds like a good idea. Is there a plan for selecting the documents that a plugins will operation on? Some plugins might want to handle that entirely on their own (via custom query parameters), but for many plugins it would probably be helpful if Couchdb handled most of the details. Two ways to select documents come to mind. 1) Provide a way for plugins to install and access standard views. 2) Let each plugin instance provide a map (and perhaps reduce) function for itself. I like #2 better because the "view" would be directly attached to the plugin rather than being independent. In my experience invisible dependencies lead to problems. But with either solution callers should be able to use the standard view like query options; key, startkey, endkey, count, etc. Another thought: If plugins want to maintain state that depends on couchdb documents, won't they need a notification facility? Filtering these notifications would be another good use of map (and perhaps reduce) functions associated directly with plugins. -Brad