Message Queuing Framework for quant development
In order to reduce message’s latency and guarantee high availability at the same time, I consider different to use message queuing framework, such as OpenAMQ and Apache Qpid. Both are based on the AMQP standard.
Please let me know what do you think about them and/or if you adopt other frameworks/solutions.
—
Apache Qpid was in incubation for a while. I haven’t played with it anyway. I am doing some independent exercising with ActiveMQ, but I don’t expect high performance from it either http://bhavin.directi.com/rabbitmq-vs-apache-activemq-vs-apache-qpid/
We implemented a pub/sub based system for controlling price limits and settlement prices once. We started with a pub/sub server developed by the french branch (Euronext), but it failed to cope with the message volume (protocol parsing and decoding, ~10k-15k msg/sec during the pick time), so the server side team ended up writing one from scratch (C plane structures with some throttling so that GUI side won’t crash). But again, it depends on requirements. These days I would certainly consider DDShttp://drdobbs.com/architecture-and-design/222900238—
—
I’ve been using JBoss HornetQ, really fast! try ithttp://www.jboss.org/hornetq
—
By far, the fastest messaging is 29 West’s LBM. It uses multicast groups as a routing mechanism, so the routers deal with message traffic moving things across subnets very efficiently. They claim some 1.4 million messages per second sustained, and have full blown queueing built on top of the framework, if you want it. Give durable subscriptions, pub/sub, request/reply, etc.
Used by the NY Stock Exchange as their messaging backbone, and sold as part of the NYSE market data software suite. Expensive, but ultra low latency.
Another good option is ZeroMQÂ [http://www.zeromq.org/] (Zero as in “No Broker”) . There is very broad language coverage of its api.
It too is very fast, I use it as a messaging wrapper over the sockets library.
Below is point summary from the website:
Ø  The socket library that acts as a concurrency framework.
Ø  Faster than TCP, for clustered products and supercomputing.
Ø  Carries messages across inproc, IPC, TCP, and multicast.
Ø  Connect N-to-N via fanout, pubsub, pipeline, request-reply.
Ø  Asynch I/O for scalable multicore message-passing apps.
Ø  Large and active open source community.
Ø  20+ languages including C, C++, Java, .NET, Python.
Ø  Most OSes including Linux, Windows, OS X.
—
second that
NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!