Thinking in a Highly Concurrent, Mostly-functional Languare

 @francescoC

 

francesco@erland-consulting.com

 

  • Whatsapp backend is written in erlang :-)
  • Concurrency
    • Mutable State
      • 1) programm error -> data might be corrupt
      • 2) where do you locate state
      • 3) what happens if network connectivity fails?
    • Immutable State
      • 1) data does not get corrupted
      • 2) state is copied
      • 3) make sure you business logic can handle network splits
      • => this is the erlang concurrency model
  • Erlangs Concurrency Model
    • erlang processes do not copy system processes
    • processes monitor each other
    • process creation: less than a ms, 1 kb memory
    • each process gets a separate id, used for sending messages
    • message passing is asynchronous