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.whita...@gmail.com> wrote:
> On Tue, Sep 4, 2012 at 4:45 PM, David Dawson
> <david.daw...@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 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
>
>
>
> --
> 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 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 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