<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 20, 2015 at 2:39 PM, <a href="mailto:e@bestmx.net">e@bestmx.net</a> <span dir="ltr"><<a href="mailto:e@bestmx.net" target="_blank">e@bestmx.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":16m" class="" style="overflow:hidden">Postgresql is an application server in its own right,<br>
Erlang renders Postgres useless -- Postgres renders Erlang useless.<br>
Doing Erlang+Postgres is like doing the same job twice.<span class=""><br></span></div></blockquote></div><br>No tool renders the other useless, if you happen to know its major strengths and weaknesses[0].</div><div class="gmail_extra"><br></div><div class="gmail_extra">Mnesia is best-in-class if you have lots of K/V lookups of data with sub-μs latency. But if most of your queries are on deep JSON structures in columns, or you have many complicated joins of data, then Postgres is a far better tool. In addition, pg is very good at solving the persistence question and keeping your data safe on disk. Furthermore, pg is way better at date-handling than Erlang, so I often outsouce date-handling code into pg. Another point is if you can't render all your data in memory all the time.<br><br>Catie McCaffrey <a href="http://et.al">et.al</a>, ran the Halo4 servers on Azure in a .NET framework named Orleans. This Actor framework kept state in memory and was strictly AP for most operations. Whenever money was involved however, an SQL Server database was used to isolate and "linearize" conflicts. And I think I can find many examples where different systems provide different guarantees.</div><div class="gmail_extra"><br></div><div class="gmail_extra">The gist of pgsql is to provide ACID easily into your platform, so you can avoid implementing that for certain subparts, while keeping the rest of the system asynchronous and fast. Exactly like Catie and Co. did.</div><div class="gmail_extra"><br clear="all"><div>[0] Of course, there are exceptions. MongoDB and MySQL are almost completely useless because their primary strengths are supplanted by other tools nowadays. They mostly exist to handle historical systems, much like COBOL.</div><div><br></div>-- <br><div class="gmail_signature">J.</div>
</div></div>