[erlang-questions] If you make WhatsApp today...

Theepan <>
Mon Oct 12 03:59:38 CEST 2015


As Joe mentioned, focus of a new product should be on key-differentiators
and time-to-market. This way you can check the product-market fit, and, if
needed, can fail-fast.

If you are familiar with Mnesia, it does not take more than 10 minutes to
set it up. Since it is a Erlang-integrated DBMS, it will help you code fast
in case you need transactional guarantees, and it withstands decent load
before you need to look at performance optimisation options.

As Jesper mentioned, when you look at storing data, you have to select the
right mix of mechanism. It is not always database alone. This worries you
only later. Some of them of course you should have it at the initial stage
itself -- e.g. storing media files in file system.


On Mon, Oct 12, 2015 at 3:14 AM, Jesper Louis Andersen <
> wrote:

> On Sun, Oct 11, 2015 at 7:48 PM, Joe Armstrong <> wrote:
>> I'd probably use the file system, then ets or dets and "roll my own"
>> first.
> To much extent, this is what WhatsApp is doing according to what I've been
> able to dissect out of their talks. They use mnesia for storing meta-data,
> but they use an UFS2 file system on FreeBSD to store the majority of data
> and just pick it off of the disk whenever they need it. The other trick
> they use is to use the clients to store the majority of data and only use
> the servers as a temporary transient store until the client comes back up
> and requests its missing data.
> Were I to start, I'd definitely do the API modularity split as well, but
> I'd probably pick postgresql as a backing store over mnesia, perhaps with
> mnesia as an in-memory cache for active users. The assumption is user data
> is not changing that often, and postgresql have the added value of being a
> system I *know* how to operate and handle. There is much to be said for
> picking technology which is tried and proven and you know how to operate.
> A possible switch is Riak for the UFS2 store, but it does require the
> ability to "append" to an object in Riak. Otherwise it is kind of moot to
> load data, add a couple of bytes and store the object back again. Perhaps
> this can be done by "chaining" documents in Riak with content addressing.
> --
> J.
> _______________________________________________
> erlang-questions mailing list
> http://erlang.org/mailman/listinfo/erlang-questions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20151012/51a6f93f/attachment.html>

More information about the erlang-questions mailing list