acabe com a concorrência usando event machine
TRANSCRIPT
![Page 1: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/1.jpg)
Acabe com a concorrência! Use EventMachine!
🎉 🎉Lucas Prim, SumOne, 2015
![Page 2: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/2.jpg)
Lucas Prim
We’re hiring!
![Page 3: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/3.jpg)
Vou contar a história do Bilgodson
🚶
![Page 4: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/4.jpg)
Ele tinha um problema.😨
![Page 5: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/5.jpg)
Ele era viciado em globo.com🙀
![Page 6: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/6.jpg)
E era viciado em Tweets sobre o Obama
%&
![Page 7: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/7.jpg)
Mas ele não sabia trocar de tabs no navegador
😧
![Page 8: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/8.jpg)
Ele se sentia frustrado:
Poderia estar perdendo a nova headline da globo.com pra postar em
seu grupo de Whatsapp enquanto olhava para os tweets sobre o Obama
😭
![Page 9: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/9.jpg)
A propósito: O Twitter acha que quem aqui é o
Obama?
![Page 10: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/10.jpg)
Bilgodson conheceu um amigo que programava em Ruby e
falou da sua frustração.
🏃*
![Page 11: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/11.jpg)
E o eu resolvi seu amigo resolveu implementar algo
pra ajudar o Bilgodson.
🎉 🎉
🎉
![Page 12: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/12.jpg)
Usando EventMachine!!!!!!!
😱😱 😱 😱
😱
![Page 13: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/13.jpg)
Bora ver a implementação?
😎😎
![Page 14: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/14.jpg)
–EventMachine GitHub Page
“EventMachine is an event-driven I/O and lightweight concurrency library for Ruby.” 🚶
![Page 15: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/15.jpg)
EM: Key Objectives• Extremely high scalability, performance and
stability for the most demanding production environments.
• An API that eliminates the complexities of high-performance threaded network programming, allowing engineers to concentrate on their application logic.😍 😍 😍
![Page 16: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/16.jpg)
EM: Good For• Scalable event-driven servers. Examples: Thin or Goliath.
• Scalable asynchronous clients for various protocols, RESTful APIs and so on. Examples: em-http-request or amqp gem.
• Efficient network proxies with custom logic. Examples: Proxymachine.
• File and network monitoring tools. Examples: eventmachine-tail and logstash.
😃 😃 😃
![Page 17: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/17.jpg)
Projeto: Tuiterator Tabajara
https://github.com/lucasprim/tuiterator-tabajara
👀
![Page 18: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/18.jpg)
Code Design
Runner
Config
Broker
BaseJob GloboJob
SocketJob
StreamJob
😯
![Page 19: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/19.jpg)
Runner
😉
![Page 20: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/20.jpg)
Runner
😉
![Page 21: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/21.jpg)
Broker
😉
![Page 22: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/22.jpg)
😉
![Page 23: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/23.jpg)
SocketJob
😉
![Page 24: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/24.jpg)
SocketJob
😉
![Page 25: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/25.jpg)
StreamJob
😉
![Page 26: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/26.jpg)
ruby application.rb
🎉 🎉
🎉🎉
🎉
🎉
![Page 27: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/27.jpg)
Como o Bilgodson não saberia abrir o console, temos também
uma client-side page conectando no nosso websocket!
😮
![Page 28: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/28.jpg)
Vamos ver se funciona?
😰
![Page 29: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/29.jpg)
Sistema funcionando!
![Page 30: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/30.jpg)
E o Bilgodson finalmente ficou feliz!
Triste ficaram seus contatos do Whatsapp…
**
***
![Page 31: Acabe com a concorrência usando event machine](https://reader030.vdocuments.mx/reader030/viewer/2022013108/55b3c749bb61ebd1548b45e3/html5/thumbnails/31.jpg)
😃brigads😃n!
We’re hiring!
https://github.com/lucasprim/tuiterator-tabajara
www.slideshare.com/lucasprim