I am genuinely puzzled why people embark on building systems which they intend to be massively scalable using languages which don't have a technology like Erlang/OTP or Akka to support distribution across multiple boxes.
The fact that, as opposed to to Goroutines, Erlang processes can be transparently running on some other node is the most important difference.
Using the old deprecated netchan package doesn't count ;).
Using C++, Java or even Python for highly concurrent and fault tolerant systems is a bit like hammering screws into the wall. It can be done with enough effort -- but try a screw driver drill and see what a difference it makes.
The secret sauce is all about fault tolerance, everything else amazingly and logically leads from it: isolation, hot code reloading, distribution (running nodes on multiple machines)
Honestly can't imagine a better way to build fault tolerant applications without the help of a supervision tree, errors that bubble up, and fast process restarts.
Would love to try out Scala or Go though, but Erlang has served me well so far. Not sure what they offer that's similar to OTP.