After two years of iteration, the code has become difficult to maintain. No one on our team is an Erlang expert, and we have had trouble debugging downtime and performance problems.
Erlang is historically bad at string processing, and it turns out that string processing is very frequently the limiting factor in networked systems because you have to serialize data every time you want to transfer it. There’s not a lot of documentation online about mochijson’s performance, but switching to Python I knew that simplejson is written in C, and performs roughly 10x better than the default json library.
I was able to provide some important operations in constant time along with other optimizations that were cripplingly slow in the Erlang version.
The [Python] community is extremely active, so many of my questions were already answered on Stack Overflow and in eventlet’s documentation.