I'm developing something I'd like to eventually try live, although I haven't even settled on a Broker yet. So in the meanwhile I thought I'd start focusing on trying to do execution using the FIX protocol, or at least have 1:1 mappings of the functions in that to what I'm trying to accomplish. Generally is that a good approach? If I end up with an API for a broker that isn't FIX, would that then be pretty trivial to remap? One thing I want to do is have a live test with a mock server that I would communicate with and check executing orders. It would just be a safe and contained way to test the whole process. If I stick with the FIX API, are there open implementations for the server side? I found this: http://www.quickfixengine.org/ But I don't know yet if that's really just a client engine or what.