A release is a self-contained deployment artifact that includes all of your dependencies, including Erlang and Elixir itself. Releases give fine-grained control over how the virtual machine is started. They also provide reliable configuration mechanisms for production systems. When you use this technique, you’ll notice several important benefits:

Code preloading

The VM has two mechanisms for loading code: interactive and embedded. By default, it runs in the interactive mode which dynamically loads modules when they are used for the first time. The first time your application calls List.first/1, the VM will find the List module and load it. There’s a downside. When you start a new server in production, it may need to load many other modules, ...

Get Adopting Elixir now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.