<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 9, 2013 at 9:41 AM, H.C. v. Stockhausen <span dir="ltr"><<a href="mailto:hc@vst.io" target="_blank">hc@vst.io</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div id=":no" style="overflow:hidden">I need a DB backend for my application but I'd like to be able to swap<br>
it out for different DBs if I choose so later on.</div></blockquote></div><br>The key point about swapping out is that it is a *static* property of your program here. So I would just</div><div class="gmail_extra"><br></div>

<div class="gmail_extra">-define(db, foo_db_mnesia).</div><div class="gmail_extra"><br></div><div class="gmail_extra">[...]</div><div class="gmail_extra"><br></div><div class="gmail_extra">?db:transaction(fun() -> ...)</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">and so on. There is little reason to make this harder by making the choice of the database dynamic at runtime unless you really need it. Tools, like the dialyzer, will make a best-effort at catching problems, should they occur.<br>

<br clear="all"><div><br></div>-- <br>J.
</div></div>