[erlang-questions] your first choice?

Jesper Louis Andersen jesper.louis.andersen@REDACTED
Fri Feb 20 15:39:43 CET 2015


On Fri, Feb 20, 2015 at 2:39 PM, e@REDACTED <e@REDACTED> wrote:

> Postgresql is an application server in its own right,
> Erlang renders Postgres useless -- Postgres renders Erlang useless.
> Doing Erlang+Postgres is like doing the same job twice.
>

No tool renders the other useless, if you happen to know its major
strengths and weaknesses[0].

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.

Catie McCaffrey et.al, 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.

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.

[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.

-- 
J.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150220/90a80c68/attachment.htm>


More information about the erlang-questions mailing list