couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Dionne <dio...@dionne-associates.com>
Subject Re: splitting the code in different apps or rewrite httpd layer
Date Mon, 23 Aug 2010 11:07:55 GMT



On Aug 22, 2010, at 4:58 PM, Mikeal Rogers wrote:

> One idea that was floated at least once was to replace all the code currently have on
top of mochiweb directly with webmachine.

If I recall, Paul Davis did some prototyping work on this at one point



> 
> This would make extensions and improvements follow already well defined patterns provided
by webmachine.
> 
> -Mikeal
> 
> Sent from my iPhone
> 
> On Aug 20, 2010, at 2:09 AM, Benoit Chesneau <bchesneau@gmail.com> wrote:
> 
>> Hi all,
>> 
>> I work a lot these days around the httpd code and the more I work on
>> the more I think we should refactor it to make it easier to hack and
>> extend.  There is indeed a lot of code in one module (couch_httpd_db)
>> and recent issue like vhost and location rewriting could be easier to
>> solve if we had an http layer more organized in my opinion.
>> 
>> Actually we do (in 1.0.1 or trunk) :
>> 
>> request -> couch_httpd loop -> request_handler -> check vhost and
>> eventually rewrite url -> request_int -> request_db -> request
>> doc|request _design | request attachment | request global handler |
>> request misc handler
>> 
>> with extra level : request_design -> rewrite handler|
>> show|lists|update\lview ... and request_int that catch all errors and
>> has the responsibility to send errors if anything happend and wasn't
>> catched on other layers.
>> 
>> It could be easier. We could do it more resource oriented for example
>> than it is. 1 module, 1 resource. Refactoring httpd code would also
>> allow us to reuse more code than we do actually maybe by wrapping api.
>> 
>> How :
>> 
>> - Some times ago we started to port it using webmachine with davisp,
>> but we didn't finish. Maybe it's a good time ? Or do we want to follow
>> another way ?
>> 
>> - If we go on this refactoring it could be also a good time to split
>> couchdb in different apps : couchdb-core and couchdb foe example
>> (maybe couchdb-appengine ?) so we could develop independantly each
>> levels and make code history cleaner.
>> 
>> 
>> Thoughts ?
>> 
>> 
>> - benoit


Mime
View raw message