May I ask why the move from Erlang to C++?
But a short version is pretty simple: lack of available talent, unsuitable memory model, performance. Erlang's shared-nothing model is great for concurrency; it does not work well when dealing with data structures that are subject to invasive operations. (Limit order book sees very rapid modifications.)
I'll have to nudge our exchange team again about the writeup. Maybe we'll have it at some point.