What about distributing a tiny compiled function that encodes Real_Time_Price = f(Time, Market_Bid_Price, Market_Ask_Price) were f uses what ever simple/fast functions (e.g., multiply-accumulate, LUT, etc.) the trading machine can compute in O(0) time.I'm not sure ZeroMQ is the right approach. Do you really want a true queue (which might become congested) or do you want the trading machine to ALWAYS use the latest result from the crunching machine even if that means skipping an intermediate message from the crunching machine? Perhaps something like a 3-item ping-pong buffer would ensure there's always: 1) a latest function space that's open to the trading machine in mid-read; 2) a next function space that's in mid-write by the crunching machine, and 3) an obsolete function space available for the next-write event. State machines on either side would control read and write access so that the trading and crunching machines always have access with no waiting.