elixir
play

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


  1. ELIXIR Tolerância a Falhas para Adultos @akitaonrails

  2. ELIXIR Tolerância a Falhas para Adultos @akitaonrails

  3. @akitaonrails

  4. FIM DA LEI DE MOORE

  5. THREADS! (NÃO USE)

  6. THREADS! (NÃO USE)

  7. EVENTOS! (NÃO USE)

  8. EVENTOS! (NÃO USE)

  9. BAIXA LATÊNCIA

  10. CO-ROTINAS (SUBROTINAS, FIBRAS)

  11. CASOS REAIS

  12. “Since cut-over of the fj rst 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 fj eld engineers do not learn maintenance skills.” Bernt Nilsson - director of Ericsson’s Next Generation Systems program

  13. BÁSICO …

  14. PEER-TO-PEER NETWORKING

  15. [a, b, c] = [a, 2, 3] {:ok, message} = {:ok, “world"} {:ok, [hello: message]} = {:ok, [hello: “world”]} [hello: message, world: message2] #=> [{:hello, message}, {:world, message2}]

  16. [a, b, c] = [a, 2, 3] {:ok, message} = {:ok, “world"} {:ok, [hello: message]} = {:ok, [hello: “world”]} [hello: message, world: message2] #=> [{:hello, message}, {:world, message2}]

  17. [a, b, c] = [a, 2, 3] {:ok, message} = {:ok, “world"} {:ok, [hello: message]} = {:ok, [hello: “world”]} [hello: message, world: message2] #=> [{:hello, message}, {:world, message2}]

  18. [a, b, c] = [a, 2, 3] {:ok, message} = {:ok, “world"} {:ok, [hello: message]} = {:ok, [hello: “world”]} [hello: message, world: message2] #=> [{:hello, message}, {:world, message2}]

  19. PATTERN MATCHING

  20. CALL BY PATTERN

  21. Spawn, Send, Receive

  22. "PID" (Process ID)

  23. PROCESSOS (GREEN THREADS)

  24. List/Kill

  25. ASYNCHRONOUS EXCEPTIONS

  26. ASYNCHRONOUS EXCEPTIONS

  27. Link, Flag

  28. ACTORS!

  29. GenServer

  30. [h, t] = [1, 2, 3] #=> h = 1, t = [2,3] Process.list |> Enum.reverse #=> Enum.reverse(Process.list())

  31. [h, t] = [1, 2, 3] #=> h = 1, t = [2,3] Process.list |> Enum.reverse #=> Enum.reverse(Process.list())

  32. SUPERVISOR TREE (supervisor - supervisees/workers)

  33. OTP (Open Telecom Platform)

  34. MICRO “YOCTO” SERVICES (Micro > Nano > Pico > Femto > Atto > Zepto > Yocto)

  35. MICRO “YOCTO” SERVICES (Micro > Nano > Pico > Femto > Atto > Zepto > Yocto)

  36. MICRO “YOCTO” SERVICES (Micro > Nano > Pico > Femto > Atto > Zepto > Yocto)

  37. • Keywords, Maps, Comprehensions

  38. • Keywords, Maps, Comprehensions • Documentação testável/executável

  39. • Keywords, Maps, Comprehensions • Documentação testável/executável • TypeSpecs, Behaviors

  40. • Keywords, Maps, Comprehensions • Documentação testável/executável • TypeSpecs, Behaviors • Agents, Tasks, GenEvent

  41. • Keywords, Maps, Comprehensions • Documentação testável/executável • TypeSpecs, Behaviors • Agents, Tasks, GenEvent • Macros, Sigils

  42. • Keywords, Maps, Comprehensions • Documentação testável/executável • TypeSpecs, Behaviors • Agents, Tasks, GenEvent • Macros, Sigils • Armazenamento: ETS, DETS, Mnesia

  43. shared mutable global state Javascript - Blocking Event Loop Low Level Rust - Async in progress No coroutines goroutines sem ID Suture Go shared mutable state (OTP Clone) static signatures Akka shared mutable state Scala (OTP Clone) static signatures Almost Erlang-like Process Clojure Pulsar / Quasar JVM limitations

  44. “quase” …

  45. Erlang: PRONTO! (30 anos)

  46. APRENDENDO

Recommend


More recommend