For a decent intro to ring and compojure you probably want to watch 
http://skillsmatter.com/podcast/home/functional-web
It's an introduction to the libraries by their author/maintainer, James 
Reeves.

On Wednesday, September 5, 2012 9:56:51 AM UTC+2, David Dawson wrote:
>
> Thanks guys!
>
> I'll go with ring + compojure bundled with cheshire json and 
> clojuremongodb as a starting point and see where I get to.
> I'm all in favour of pleasant suprises!
>
> David.
>
> On Wednesday, 5 September 2012 03:05:33 UTC+1, Gaz wrote:
>>
>> We do all of the things you mention (minus the replay, but that would 
>> be trivial) in Clojure where I work, and it is remarkably easy. We 
>> use: 
>>
>> * ring + compojure and an embedded jetty server to create lightweight 
>> webservers 
>> * the Cheshire JSON encoding/decoding library for all JSON purposes 
>> (https://github.com/dakrone/cheshire) 
>> * we wrote our own small wrapper around rabbitmq - but there are 
>> several available now (such as 
>> https://github.com/michaelklishin/langohr) 
>> * for mongo we use: http://clojuremongodb.info/ 
>>
>> We also found that when processing JSON messages, multimethods can be 
>> extremely useful as a dispatch mechanism if the shape of the JSON data 
>> dictates what should happen to it. I would certainly recommend Clojure 
>> for what you describe, I think you will be pleasantly suprised how 
>> straightforward it is :) 
>>
>> On Tue, Sep 4, 2012 at 7:05 PM, Russell Whitaker 
>> <russell....@gmail.com> wrote: 
>> > On Tue, Sep 4, 2012 at 4:45 PM, David Dawson 
>> > <david....@dawsonsystems.com> wrote: 
>> >> Hiya! 
>> >> 
>> >> I saw the names, but then was swamped by moustache, noir and others 
>> that at 
>> >> first glance appear to be in similar spaces.  I found it a bit 
>> difficult to 
>> >> pick out the various specialisms or layers each library is aiming at 
>> tbh. 
>> >> So, I thought it best to look for some guidance if possible from 
>> people who 
>> >> know what they're doing ... :-) 
>> >> 
>> > 
>> > Some of us are only "ahead of you" by relative measures: I myself had 
>> > to _remove_ noir 
>> > & noir-async from a project today because of some reloading issues 
>> > introduced by the latter; see 
>> > today's (4 Sep 2012) clojure IRC log: 
>> > 
>> > http://clojure-log.n01se.net/ 
>> > 
>> > Russell 
>> > 
>> >> david 
>> >> 
>> >> 
>> >> On Wednesday, 5 September 2012 00:24:46 UTC+1, Russell Whitaker wrote: 
>> >>> 
>> >>> On Tue, Sep 4, 2012 at 1:52 PM, David Dawson 
>> >>> <david....@dawsonsystems.com> wrote: 
>> >>> > Hiya, 
>> >>> > 
>> >>> > So, I'm a clojure newbie... and I've been asked to evaluate a few 
>> >>> > different 
>> >>> > technology options for a project I've been handed. 
>> >>> > 
>> >>> > The end result will need to be a 'router' that accepts JSON 
>> messages 
>> >>> > over 
>> >>> > HTTP, store them into some datastore (ideally one of the ones 
>> available 
>> >>> > on 
>> >>> > cloudfoundry, postgres mongo etc), then forward the message onto 
>> one or 
>> >>> > more 
>> >>> > end points.   Forwarding will probably be either dropping into 
>> rabbitmq 
>> >>> > or 
>> >>> > posting on with HTTP. 
>> >>> >  (or both). 
>> >>> > 
>> >>> > There also needs to be a replay capability, so you can tell the 
>> router 
>> >>> > to 
>> >>> > scoop up the historical messages from the datastore and forward 
>> them all 
>> >>> > on 
>> >>> > (in order) to a particular end point. 
>> >>> > 
>> >>> > I'm totally open to any tech, prebuilt (and commercial) or 
>> development 
>> >>> > required but given that the system needs some algorithmic routing 
>> rules, 
>> >>> > clojure seemed a really nice conceptual fit over the languages I 
>> >>> > normally 
>> >>> > work with (imperative jvm ones, essentially) 
>> >>> > 
>> >>> > So, I'm really interested in any suggestions on how this might best 
>> be 
>> >>> > approached in the clojure world! 
>> >>> > 
>> >>> 
>> >>> Hi David, have you looked at Ring + Compojure? 
>> >>> 
>> >>> -- 
>> >>> Russell Whitaker 
>> >>> http://twitter.com/OrthoNormalRuss / 
>> http://orthonormalruss.blogspot.com/ 
>> >>> http://www.linkedin.com/pub/russell-whitaker/0/b86/329 
>> >> 
>> >> -- 
>> >> You received this message because you are subscribed to the Google 
>> >> Groups "Clojure" group. 
>> >> To post to this group, send email to clo...@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+u...@googlegroups.com 
>> >> For more options, visit this group at 
>> >> http://groups.google.com/group/clojure?hl=en 
>> > 
>> > 
>> > 
>> > -- 
>> > Russell Whitaker 
>> > http://twitter.com/OrthoNormalRuss / 
>> http://orthonormalruss.blogspot.com/ 
>> > http://www.linkedin.com/pub/russell-whitaker/0/b86/329 
>> > 
>> > -- 
>> > You received this message because you are subscribed to the Google 
>> > Groups "Clojure" group. 
>> > To post to this group, send email to clo...@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+u...@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 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

Reply via email to