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