@botpro @vicirek I have a system that consists on four processes and runs on a
single box. I am using C++ threading, and I am using 70-s style

POSIX FIFO,
sockets, and select(). Two of the processes write the data into FIFO on the
main thread and listen to the incoming data on the child thread. It's all
working well and fast, however it's getting complicated when I want to get the
data from multiple sources, such as downloading interest rates, options prices,
news, etc besides the quotes. It is also difficult to have multiple strategy
modules. Note, the strategy module needs read access to all those accumulated
data. Hence, I am pretty much set on ZeroMQ so I won't have to worry about
race conditions, critical sections, etc.
Reiterating
@nitro, ZMQ supports multiple transport protocols: shared memory,
sockets, FIFO, UDP. Switching between them is a matter of passing a different
parameter to a function. ZMQ is sure not easy to learn, but it solves all the
scalabity issues. You can configure it to have multiple publishers, multiple
workers, multiple subscribers and it's done in a few lines of code.
What I need is for the consumers - strategy process(es) - to access the
accumulated data. I need a way to store the data into, say, std::vector<class
Quote> and have other processes to easily accesses those data using iterators.