Hot code reloading is best used for a scenario where you <i>cannot</i> afford to restart your system, usually because it drags a lot of internal state around and reconstructing that state is expensive.<p>Typical use cases include several gigabytes of in memory state which takes a long time to read in and get hot when redeploying or a large amount of long-running TCP connections.<p>For most other uses, we just do rolling upgrades in Erlang as everyone else is doing. It is somewhat simpler to get to work, and immutable architecture is to a certain extent easier to manipulate.