If a restart is unacceptable then live-patching a data structure change at runtime requires a #YOLO approach to developement and ice in your veins
I haven’t checked these links in quite some time: https://gist.github.com/macintux/6349828
And if you don’t mind videos, here’s my talk from Midwest.io (RIP) on the philosophy behind Erlang & its VM: https://youtu.be/E18shi1qIHU
At Basho, we would load module fixes into Riak instances for customers...I hesitate to say "fairly regularly" because it's been long enough and I had limited visibility into it, but it certainly seemed like a routine operation.
The full "upgrade the entire application" hot loading definitely requires more planning than most companies will ever be willing to do.
It's really not that different from doing a DB table update.