Quote from rosy2:
every place I have been converts all external messages to an internal (in house) format (ie. xml, json, binary something) so a market data message from IB looks like a market data message from FIX4.3 or whatever.
No issue there whatsoever. While I might heavily dislike xml and such, it is everybody's right to do in house data processing any way they need or see it fit, just don't force me to process it using the tools I don't like and to introduce one more message transformation layer that maybe (sometimes but not always) I wouldn't need to do. And when C,D,E,F,G (or whatever is the next in line language) comes to fashion, I would have to use the new client and rewrite my own interface for no good reason, because (assuming it was properly designed from the beginning) the actual protocol is not really changed. Well thought protocol could extend the new messages long way before any need for redesign. FIX is far from perfect example, but even today you could communicate with the COBOL system on the other side, without knowing anything about it, and you probably are

