Also the trade engine should be written in java or python.
Why?
I would like the trade engine to be written in Haskell, Erlang or some flavor of Lisp. Just because a functional language makes it easier to keep the code clean of unintended consequences. Also, Java is very bloaty, not a good thing for high performance code.
However, I understand sometimes compromise is necessary.