Slightly late to the party, but I just wrote this wrapper around node-amqp that provides some higher level APIs for resourced based distribution of messages.
I know this partially is about not having to use another process, but as far as messaging goes, rabbitmq is pretty impressive piece of software, and I don't think you can beat it when you need resiliency. (mirrored queues are pretty impressive things) https://github.com/addisonj/node-distributor It uses topic exchanges to do either a work-queue messaging model or pub sub through exclusive exchanges. It has some unique such as the definition json document which describes all the resources and topics a service offers. The client just needs this definition file to begin consuming. Its really purpose built for us here at i.TV (github.com/idottv) but maybe some of you can get use out of it as well. The docs are a bit weak, ping me if you have any questions. On Fri, Mar 8, 2013 at 11:46 AM, tjholowaychuk <[email protected]>wrote: > It depends on your application of course, but an event bus is brittle > by-design, > that's why I was mentioning that a more structured/domain-specific > approach with > zeromq or similar would be an easier sell as far as scaling goes, it's > easy to pop > in new nodes for a specific task vs trying to scale out a behemoth > event bus. > > On Mar 8, 2:18 am, Micheil Smith <[email protected]> wrote: > > @TJ Redis is great, until a point, which is: do you need redundancy; > Making > > pub/sub scale and > > be resilient to failures is quite a tricky problem. For instance, > LinkedIn > > uses Apache Kafka. > > > > An anecdote: I know a company that used redis for the backbone of their > > services APIs and network, it worked great, until that one day when redis > > crashed; granted, that had never happened before then, but when redis did > > crash, it meant that all services started buffering in memory, then those > > services died, redis restarted, got utterly overloaded again, and died > > again, then more services died. It basically took an entire network reset > > to fix it. > > > > Sure, there were hot-slaves, but in a pub/sub type environment, those > don't > > really help you that much. > > > > I think there's other better solutions, and I totally disagree with the > > "just use redis" approach. > > > > – Micheil > > > > > > > > > > > > > > > > On Thursday, March 7, 2013 4:29:46 AM UTC, tjholowaychuk wrote: > > > > > IMO event buses are usually not a great solution, but if that's all you > > > need I would just use redis pubsub, > > > otherwise a more structured approach with axon/zmq works well > > > > > On Wednesday, 6 March 2013 12:35:38 UTC-8, Tim Dickinson wrote: > > > > >> I'm looking for a pure node event bus. Something like hook.io but > that > > >> is kept up to date. > > > > >> I have been thinking of building my own module using > > >>https://github.com/visionmedia/axonbut if something is already out > > >> there then why not use it. > > > > >> What I'm doing is have a few processes that are Independence of each > > >> other. There can be a master process or peer2peer type setup. Each > process > > >> and listen/subscribe to events as other process emit/publish events. > I like > > >> the ruby nats system but I'm looking for something that is written in > node. > > >> I know there is a client for node for nats but i don't want to have > to run > > >> a ruby process if i don't have to. > > > > >> I really like hook.io but it uses a lot of memory and is kind slow. > if I > > >> have more then a few processes hook.io gets really slow. > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
