<div dir="ltr"><div><div><div><div># Quick Background<br><br>I inherited an Erlang 
system that's a fairly typical HTTP, almost-ReST API. The nature of the 
API and what it represents made Erlang a good choice for its concurrency
 aspects. As for the reliability aspects, we rely totally on a typical 
HTTP/S load balancer setup for HA. We do rolling restarts behind the LB 
and not hot code upgrades as enabled by Erlang because of the complexity
 of Erlang upgrades.<br><br></div><div># The Question<br><br></div>Why 
should we run embedded mode in production? It seems that's the unspoken 
law for production systems, but why? Is there some performance overhead 
running in interactive mode? I've read about Code Loading Strategy in 
the System Principles User's Guide:<br><a href="http://erlang.org/doc/system_principles/system_principles.html#id56789" target="_blank">http://erlang.org/doc/system_principles/system_principles.html#id56789</a><br><br></div>I've also read about the mode differences in the code server:<br><a href="http://erlang.org/doc/man/code.html" target="_blank">http://erlang.org/doc/man/code.html</a><br><br></div>I
 don't see anything in any of the stdlib/OTP docs about *why* you would 
choose embedded vs interactive mode. I'm leaning heavily toward using 
interactive mode everywhere, dev through production, because it's so 
much simpler and easy to understand. Someone please talk me out of it if
 that's a terribly Bad Idea.<br><br></div><div>Ryan<span class=""></span></div></div>