Remarkable

Erlang

Applications

WhatsApp

Basho

Klarna

AdRoll

PrivatBank

Crytek Warface

WhatsApp

600M monthly users as for 2015
19B messages in & 40B out per day 600M pics, 200M voice, 100M videos 

WhatsApp

147M concurrent connections
230K peak logins/sec
342K peak msgs in/sec, 712K out 

WhatsApp

WhatsApp

mnesia = disk_log + ets

 

parallel disk io

custom hashing

512 fragments per table

 

Basho

Akamai Engineers

Most advanced AP database

CRDT, Multi-PAXOS

 

Basho

Google LevelDB

Bitcask

Spidermonkey Map/Reduce

Webmachine

 

Basho

 

Klarna

Klarna

Klarna

------------------------------------------------------------------------------- kred@kred-psize: 493.4G(530.6G), cpu%: 362(366), procs: 1.6k, runq: 0, 16:17:03 memory: proc 18.4G, atom 5.0M, bin 496.1M, code 57.0M, ets 474.4G 

pid            name
<0.28894.66>   yaws_server:acceptor0/2
<0.25.0>       file_server_2
<0.17983.74>   yaws_server:acceptor0/2      gen:do_call/4
<0.9604.73>    yaws_server:acceptor0/2      prim_inet:recv0/3      0   7.6M   1
<0.23590.74>   yaws_server:acceptor0/2      prim_inet:recv0/3      0   1.8M   1
<0.26.0>       code_server                  code_server:loop/      0 426.0k   1
-------------------------------------------------------------------------------

Technical Debt

------------------------------------------------------------------------------- kred@kred-psize: 493.4G(530.6G), cpu%: 362(366), procs: 1.6k, runq: 0, 16:17:03 memory: proc 18.4G, atom 5.0M, bin 496.1M, code 57.0M, ets 474.4G 

pid            name
<0.28894.66>   yaws_server:acceptor0/2
<0.25.0>       file_server_2
<0.17983.74>   yaws_server:acceptor0/2      gen:do_call/4
<0.9604.73>    yaws_server:acceptor0/2      prim_inet:recv0/3      0   7.6M   1
<0.23590.74>   yaws_server:acceptor0/2      prim_inet:recv0/3      0   1.8M   1
<0.26.0>       code_server                  code_server:loop/      0 426.0k   1
-------------------------------------------------------------------------------

AdRoll

< 100ms Latency

30B transactions per day

mnesia

Crytek Warface

145K TCP connections

Guiness World Record most online FPS players

mnesia/xmpp/.NET

PrivatBank

PrivatBank

PrivatBank

4.3B UAH in a month

100K deposits per month

4M deposits

3K users/day



    #process { name = 'Create Deposit Account',

        flows = [
            #sequenceFlow{source='Start',          target='AcquirePhone'},
            #sequenceFlow{source='AcquirePhone',   target='SendOTP'},
            #sequenceFlow{source='SendOTP',        target='AcquireOTP'},
            #sequenceFlow{source='AcquireOTP',     target='CheckOTP'},
            #sequenceFlow{source='CheckOTP',       target='AcquireApp'},
            #sequenceFlow{source='AcquireApp',     target='PrepareAccount'},
            #sequenceFlow{source='PrepareAccount', target='WaitPayment'},
            #sequenceFlow{source='Payment',        target='CreateAccount'},
            #sequenceFlow{source='CreateAccount',  target='Finish'}
        ],

        tasks = [
            #beginEvent  { name='Start' },
            #userTask    { name='AcquirePhone',    module = deposit },
            #serviceTask { name='SendOTP',         module = deposit },
            #userTask    { name='AcquireOTP',      module = deposit },
            #serviceTask { name='CheckOTP',        module = deposit },
            #userTask    { name='WrongOTP',        module = deposit },
            #userTask    { name='AcquireApp',      module = deposit },
            #serviceTask { name='PrepareAccount',  module = deposit },
            #receiveTask { name='WaitPayment',     module = deposit },
            #serviceTask { name='CreateAccount',   module = deposit },
            #endEvent    { name='Finish' }
        ],

        docs = [],
        beginEvent = 'Start',
        endEvent = 'Finish',
        events = [
            #messageEvent { name='Payment' }
        ]
    }.

PrivatBank

Copy of Erlang Applications

By Maxim Sokhatsky

Copy of Erlang Applications

WhatsApp, Klarna, Basho, AdRoll, Crytek, PrivatBank

  • 296