The post explores the concept of hot code swapping in Elixir and Erlang, highlighting the ability to upgrade systems without restarting them, interrupting services, or affecting users. A manual example is provided, where running code is hot-swapped without losing state. The use of functions like :code.load_file and :sys.suspend are showcased. The post also discusses Erlang applications and releases, as well as Appups and Relups for upgrades. It delves into generating releases and upgrades with Elixir using tools like Distillery. The post concludes with deployment steps for the generated releases. The content provides in-depth insights into the power and possibilities of runtime code manipulation.
https://kennyballou.com/blog/2016/12/elixir-hot-swapping/index.html