Chris, this is definitely interesting. Quickly pluggable metrics & swagger 
& trapperkeeper componentization sure are useful integrations.

Doing a quick review, it surprised me a bit how many dependencies you 
brought into comidi 
<https://github.com/puppetlabs/comidi/blob/master/project.clj> 
[dependencies].
This looks more like a pragmatic, compromise integration library than a 
pure new offer (just like you said you need at Puppet Labs).
Nevertheless, since you deviate from Compojure's API, I was very surprised 
to still see you depend on it. And then I remind myself that you're in 
there for meaningful, but quick, wins.

There was a discussion between most of the authors of the popular routing 
libraries when Silk was introduced, including bidi's Malcolm, which came to 
be very interesting too.
When you titled `comidi` as being "a committee approach to defining HTTP 
routes", I wondered if you were following up to that discussion. Here's a 
link I kept to the middle of it 
<https://groups.google.com/forum/#!searchin/clojure/silk$20bidi/clojure/D95anPmhNhU/X7P53cGbfZMJ>
 [discussion].

In any case, thanks for contributing to this field.

[dependencies]: https://github.com/puppetlabs/comidi/blob/master/project.clj
[discussion]: 
https://groups.google.com/forum/#!searchin/clojure/silk$20bidi/clojure/D95anPmhNhU/X7P53cGbfZMJ

On Wednesday, July 1, 2015 at 5:45:40 AM UTC-4, Chris Price wrote:
>
> Hiya.
>
>
> We really like the syntax of compojure for defining HTTP routes, but have 
> had some trouble with use cases where we'd really like to be able to 
> introspect the route tree, and aren't able to do so because the nested 
> functions are pretty opaque.
>
> After spending some time trying to workaround that, and giving up, we 
> decided to look into bidi, which has been awesome.  The data-driven route 
> tree is really, really useful.
>
> However, a wholesale port of all of our existing apps directly from 
> compojure to bidi seemed daunting.  Enter `comidi`:
>
> https://github.com/puppetlabs/comidi
>
> This is a small library that uses bidi to build up route trees, but 
> provides a compojure-like syntax for defining the routes, and uses 
> compojure's "render" capabilities to support flexible syntax for specifying 
> your individual handlers for each route.
>
> We've also got a related project that integrates comidi with our 
> Trapperkeeper framework and the dropwizard metrics library, to give you 
> middleware that will automatically track request metrics for each route in 
> your bidi/comidi route tree.
>
> This is all a work in progress: notably, we had built up some prismatic 
> schemas around the route structures, but since the latest release of bidi 
> ships with its own schemas, we'll probably try to upgrade to that and 
> reconcile the differences soon.
>
> We also have some plans for improving the ability to wrap middleware 
> around the route tree at various levels, and to look into some ring-swagger 
> integration soon.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to