3

I have the following requirements:

  1. Reliable messaging: ensured delivery, in-order, no-duplication
  2. Message filtering and routing based on customizable criteria
  3. Message multi-cast
  4. Message recipient list, send messages to only specified recipients
  5. Message priorities
  6. Built-in Security

I want to know for each of the solutions mentioned in the title what requirements from the above are supported.

If you know only about one product please share your thoughts on it.

skaffman
  • 398,947
  • 96
  • 818
  • 769
Liviu Mandras
  • 6,540
  • 2
  • 41
  • 65

1 Answers1

2

0Mq and Twisted are tools to build connectivity systems, node.js is a webserver (that have various plugins to talk to other systems via beanstalkd or 0Mq).

Of the four technologies listed, only Beanstalkd is actually a queue. It could use named 'tubes' to differentiate potential destinations (have all the workers from from one or more tubes as required). If each worker read from specific tubes, you could use it somewhat like multi-cast, having the individual workers pull from their own defined source.

If you really need multi-casting and routing you might need something more complex. Rabbit.mq may do most of it, but if you want to put the criteria within the queue/routing software itself, you may need a full ESB.

Alister Bulman
  • 34,482
  • 9
  • 71
  • 110
  • 5
    ZeroMQ is a networking library. It enables queues, and uses them internally. You can also download ZMQ enabled programs that implement more robust, disk based queues as well, such as https://github.com/mkoppanen/pzq/wiki/An-Introduction-To-PZQ – Alister Bulman Dec 27 '11 at 16:44
  • 10
    Wrong descriptions. node.js is a webserver is like saying that ruby on rails is a webserver. Said that, ZeroMq is a protocol, like TCP is a protocol, with implementations in many languages. Twisted is like nodejs but in python. And last but not least, Beanstalkd is a worker server with its own queue protocol. – graffic May 25 '12 at 08:12
  • mmmmmm zeromq a protocol (O.O) ( from zeroMQ page : The socket library that acts as a concurrency framework. ) ? Beanstalk is a queue server not worker. – BlaShadow Oct 16 '13 at 16:23