Our exchange team have promised to do a writeup on the technical and design tradeoffs with regards to the language transition. I'll prod them a bit, and maybe we shall have a properly exhaustive post on this in near future.
The TL;DR is fairly simple, though:
* availability of talent
* memory model suitability
As far as I have been let to understand, Erlang's shared-nothing model works quite well for a trading client. (As long as cross-market/cross-contract correlations are within reasonable limits.) In our case, it doesn't do as well as a trading exchange runtime. When you have more than 100k limit-order books across tens of thousands of contract groups (or "markets"), rapid updates to a lot of them become quite expensive.
You probably could design a robust sharding strategy to handle that, but then again, that takes a very specific kind of talent. Considering the first point above...
That post would probably be of interest to a lot of HN readers. If they want, we can look over a draft if someone sends it to hn@ycombinator.com. Just be aware that we can't always reply right away—our worst-case latency sucks.
Same offer goes for anyone else who's putting a lot of work into a post they hope will interest HN.