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 <bchesn...@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