My use case is that I want to push ticks onto the event dispatcher so I can simulate stuff. I can of course write my own, but would prefer to use someone else's. Eventually, I will use this to also submit orders and receive order updates from within the strategies. Main requirements: * Easy to use * Can be run in-and-out-of-process as a Python library (this is probably asking too much) * Fast enough to handle tick data * Little to no data loss possible * Basically perfect My default is RabbitMQ but I'm curious what the state of the art is.
any will do. you can look at zeromq if you want less fluff. https://learning-0mq-with-pyzmq.readthedocs.io/en/latest/ how many msg/sec do you expect?
Based on log files, about 100/sec. Nice call with zeromq, I had actually meant to look into it earlier.
When I was teaching Python, I used to use ZeroMQ to demo how message passing should be done. Cool bit of history: Pieter Hintjens (there was a fine man and a good thinker) actually created it as a replacement for AMQP (which he also had a hand in creating) - which was created to handle the demands of the US stock exchange.
Thumbs up for ZeroMQ. You might want to also look at https://nanomsg.org Not sure it fits your particular use case, but it's worth knowing about and has a variety of bindings. EDIT: Just been reading and disovered the Nanomsg project is now dead. Damn. I have a lot to catch up on.
I was wondering if erdewit's eventkit can be used for this purpose...don't know enough to be able to confirm
That looks a lot like reactive (Rx) which is more about data processing through events. Good to know it exists though.
No, but I have considered changing my setup to a message based system (currently objects interact via databases), and when I evaluated the various options out there zero mq came out top. GAT