Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 69157 invoked from network); 8 Jun 2009 23:39:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 8 Jun 2009 23:39:42 -0000 Received: (qmail 83453 invoked by uid 500); 8 Jun 2009 23:39:53 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 83371 invoked by uid 500); 8 Jun 2009 23:39:53 -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 83361 invoked by uid 99); 8 Jun 2009 23:39:53 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Jun 2009 23:39:53 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of adam.kocoloski@gmail.com designates 209.85.221.203 as permitted sender) Received: from [209.85.221.203] (HELO mail-qy0-f203.google.com) (209.85.221.203) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Jun 2009 23:39:41 +0000 Received: by qyk41 with SMTP id 41so4834022qyk.13 for ; Mon, 08 Jun 2009 16:39:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:from:to :in-reply-to:content-type:content-transfer-encoding:mime-version :subject:date:references:x-mailer; bh=7heQ2qhtPMsaZ+qsWa1A02weAra2XLA2X+DHXdvQK5s=; b=Afl8wfaur+7ObhMxAMumRHt465AdDm1u98rjlVysWfu34VTdhPBBhJ5NpQyNTGr+zu c5fSwEomNXtMkg5hXa88BA+gIZ9+oHbUgqr7LEqvGDYJd/8O/z5BbAUfYAmas5Vr6B7y N76wiriUxJUpFz4qAqJvvKjsk+ss6sQ3bTRUY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:from:to:in-reply-to:content-type :content-transfer-encoding:mime-version:subject:date:references :x-mailer; b=vqSragOsBF9h2GbKuvBsPtpyZna11gBj7MRdoRNRu6MD7FtA/ISKavy+itTvl39YDp Sk/i2AT8zUv6dFXkz1SbJM2r7hX5s3wVQ1POqv0W5Gi6HcLOeutG/nJBoQ/J7L+Z7BCg /LUYpEYcBa4UyzxQXY0ESfQnCc+cOuKOhNCgE= Received: by 10.224.28.73 with SMTP id l9mr7401446qac.288.1244504360675; Mon, 08 Jun 2009 16:39:20 -0700 (PDT) Received: from ?10.0.1.2? (c-71-232-49-44.hsd1.ma.comcast.net [71.232.49.44]) by mx.google.com with ESMTPS id 4sm415343qwe.17.2009.06.08.16.39.19 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 08 Jun 2009 16:39:20 -0700 (PDT) Sender: Adam Kocoloski Message-Id: <581DFFC9-7C51-48C8-83E1-B28598DA6E3E@apache.org> From: Adam Kocoloski To: dev@couchdb.apache.org In-Reply-To: Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v935.3) Subject: Re: OTP-ification Date: Mon, 8 Jun 2009 19:39:17 -0400 References: X-Mailer: Apple Mail (2.935.3) X-Virus-Checked: Checked by ClamAV on apache.org On Jun 8, 2009, at 3:26 PM, Paul Davis wrote: > On Mon, Jun 8, 2009 at 3:03 PM, Adam Kocoloski > wrote: >> On Jun 6, 2009, at 1:06 AM, Paul Davis wrote: >> >>> * CouchRep - Ideally, I'd like to keep this in core, but I don't >>> know >>> the logic in it to know if we can split it into an Erlang core >>> version >>> and add an HTTP layer on top. Or something. Anyway, that's all I >>> got. >> >> The replicator doesn't need an HTTP server, just a client (ibrowse >> atm), so >> it should not have any dependency on a future "CouchHTTPd" >> application. I >> think I'd still prefer to keep it separate from core, though. >> > > I meant to layer the protocol so that it could work over Erlang > message passing or an HTTP protocol, the goal being that core CouchDB > doesn't require HTTP to work, hence why I pulled replication into its > own module. I don't actually think we should actually try and make the > replicator this abstract, I was more just trying to reason out why I > was putting it outside of the core directory. Not quite sure I follow your reasoning (are you lumping an HTTP client and an HTTP server together as an "HTTP" requirement?), but it's tangential. We both agree that replication code belongs in its own "collection". >> Regardless of how many applications we use, we could still organize >> the code >> with a multi-level hierarchy like >> >> src >> |-core >> |-couch_db.erl >> |-... >> |-httpd >> |-replication >> |-... >> >> Adam >> > > This is possible, but I thought I read that the submodule stuff was > another one of those "implemented on a whim and not really supported" > Erlang features. I think you're referring to packages (http://www.erlang.se/publications/packages.html ) -- that's really a separate issue from how the modules' source code is organized on disk. This isn't Java :-) The snmp and megaco applications (possibly others) are organized this way, with nested folders of source code. Neither one uses packages. Thanks for getting the ball rolling on this. I still prefer to build CouchDB as one OTP application, but if the community agrees to split it out into lots of smaller ones I won't object. Best, Adam