It is what it is. It&#x27;s useful to prototype with in Erlang. It may be useful to ship with. If Mnesia turns out not to fit your problem, here in 2015, you&#x27;ve got literally <i>dozens</i> of choices of alternate DB, with all sorts of consistency and distributibility and performance characteristics.<p>My guess is that if somehow Erlang was where it was in 2015 except it didn&#x27;t have Mnesia, nobody would really perceive much of a hole there, and nobody would write it, because of the database explosion we&#x27;ve seen in the past 10 years. But it is there, and if it works for you, go for it.<p>My only slight suggestion is that rather than inlining all your mnesia calls, you ought to isolate them into a separate module or modules or something with an interface. But, that&#x27;s not really because of Mnesia... I tend to recommend that anyhow. In pattern terms, I pretty much <i>always</i> recommend wrapping a Facade around your data store access, if for no other reason than how easy it makes your testing if you can drop in alternate implementations. And then, if mnesia... no, wait... And then, if $DATABASE turns out to be unsuitable, you&#x27;re not stuck up a creek without a paddle. With this approach it&#x27;s not even all that hard to try out multiple alternatives before settling on something.