ELIXIR
Tolerância a Falhas para Adultos
@akitaonrails
ELIXIR Tolerncia a Falhas para Adultos @akitaonrails ELIXIR - - PowerPoint PPT Presentation
ELIXIR Tolerncia a Falhas para Adultos @akitaonrails ELIXIR Tolerncia a Falhas para Adultos @akitaonrails @akitaonrails FIM DA LEI DE MOORE THREADS! (NO USE) THREADS! (NO USE) EVENTOS! (NO USE) EVENTOS! (NO USE) BAIXA
Tolerância a Falhas para Adultos
@akitaonrails
Tolerância a Falhas para Adultos
@akitaonrails
@akitaonrails
FIM DA LEI DE
THREADS! (NÃO USE)
THREADS! (NÃO USE)
EVENTOS! (NÃO USE)
EVENTOS! (NÃO USE)
BAIXA LATÊNCIA
CO-ROTINAS
(SUBROTINAS, FIBRAS)
CASOS REAIS
“Since cut-over of the fjrst nodes in British Telecom's network in January 2002 only one minor fault has occurred, resulting in 99.9999999% availability.” “The network performance has been so reliable that there is almost a risk that our fjeld engineers do not learn maintenance skills.”
Bernt Nilsson - director of Ericsson’s Next Generation Systems programBÁSICO …
PEER-TO-PEER NETWORKING
[a, b, c] = [a, 2, 3] {:ok, message} = {:ok, “world"} {:ok, [hello: message]} = {:ok, [hello: “world”]} [hello: message, world: message2] #=> [{:hello, message}, {:world, message2}]
[a, b, c] = [a, 2, 3] {:ok, message} = {:ok, “world"} {:ok, [hello: message]} = {:ok, [hello: “world”]} [hello: message, world: message2] #=> [{:hello, message}, {:world, message2}]
[a, b, c] = [a, 2, 3] {:ok, message} = {:ok, “world"} {:ok, [hello: message]} = {:ok, [hello: “world”]} [hello: message, world: message2] #=> [{:hello, message}, {:world, message2}]
[a, b, c] = [a, 2, 3] {:ok, message} = {:ok, “world"} {:ok, [hello: message]} = {:ok, [hello: “world”]} [hello: message, world: message2] #=> [{:hello, message}, {:world, message2}]
PATTERN
MATCHING
CALL BY
PATTERN
Spawn, Send, Receive
(Process ID)
PROCESSOS
(GREEN THREADS)
List/Kill
ASYNCHRONOUS
EXCEPTIONS
ASYNCHRONOUS
EXCEPTIONS
Link, Flag
GenServer
[h, t] = [1, 2, 3] #=> h = 1, t = [2,3] Process.list |> Enum.reverse #=> Enum.reverse(Process.list())
[h, t] = [1, 2, 3] #=> h = 1, t = [2,3] Process.list |> Enum.reverse #=> Enum.reverse(Process.list())
SUPERVISOR TREE
(supervisor - supervisees/workers)
(Open Telecom Platform)
MICRO
“YOCTO”
SERVICES
(Micro > Nano > Pico > Femto > Atto > Zepto > Yocto)
MICRO
“YOCTO”
SERVICES
(Micro > Nano > Pico > Femto > Atto > Zepto > Yocto)
MICRO
“YOCTO”
SERVICES
(Micro > Nano > Pico > Femto > Atto > Zepto > Yocto)
PRONTO! (30 anos)
APRENDENDO
www.akitaonrails.com/elixir @akitaonrails
www.akitaonrails.com/elixir @akitaonrails