Por que Elixir?

Thomaz Leite

Parte 1

Runtime

Erlang

Elixir

32 desenvolvedores

50 bilhões de mensagens por dia

http://sequoiacapital.tumblr.com/post/77211282835/four-numbers-that-explain-why-facebook-acquired​

AXD 301 Switch

Mais de 20 anos sem downtime

Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance.

Concorrência

Concorrência
vs

Paralelismo

Shared Memory Concurrency

Maioria das linguagens

A thread é o building block

Mutexes, semaphores, locks, caches, etc.

Message Passing Concurrency

Erlang, Elixir, LFE

O processo é o building block

Spawn, send e receive

Actor Model

Orientação a objetos de verdade

Distribuição

Mnesia

Banco de dados distribuído

http://erlang.org/doc/man/mnesia.html

Tolerância a Erros

"Let it crash"

(Deixa quebrar)

Link entre processos

Supervisor

Árvore de supervisão

Registro de nomes

Elixir

Tooling

Polymorphism

Metaprogramming

Por que Elixir? (Parte 1)

By thmzlt

Por que Elixir? (Parte 1)

Elixir POA Meetup 08/2017

  • 602