Acabe com a concorrência usando event machine

Preview:

Citation preview

Acabe com a concorrência! Use EventMachine!

🎉 🎉Lucas Prim, SumOne, 2015

Lucas Prim

We’re hiring!

Vou contar a história do Bilgodson

🚶

Ele tinha um problema.😨

Ele era viciado em globo.com🙀

E era viciado em Tweets sobre o Obama

%&

Mas ele não sabia trocar de tabs no navegador

😧

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

😭

A propósito: O Twitter acha que quem aqui é o

Obama?

Bilgodson conheceu um amigo que programava em Ruby e

falou da sua frustração.

🏃*

E o eu resolvi seu amigo resolveu implementar algo

pra ajudar o Bilgodson.

🎉 🎉

🎉

Usando EventMachine!!!!!!!

😱😱 😱 😱

😱

Bora ver a implementação?

😎😎

–EventMachine GitHub Page

“EventMachine is an event-driven I/O and lightweight concurrency library for Ruby.” 🚶

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.😍 😍 😍

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.

😃 😃 😃

Projeto: Tuiterator Tabajara

https://github.com/lucasprim/tuiterator-tabajara

👀

Code Design

Runner

Config

Broker

BaseJob GloboJob

SocketJob

StreamJob

😯

Runner

😉

Runner

😉

Broker

😉

😉

SocketJob

😉

SocketJob

😉

StreamJob

😉

ruby application.rb

🎉 🎉

🎉🎉

🎉

🎉

Como o Bilgodson não saberia abrir o console, temos também

uma client-side page conectando no nosso websocket!

😮

Vamos ver se funciona?

😰

Sistema funcionando!

E o Bilgodson finalmente ficou feliz!

Triste ficaram seus contatos do Whatsapp…

**

***

😃brigads😃n!

We’re hiring!

https://github.com/lucasprim/tuiterator-tabajara

www.slideshare.com/lucasprim

lucas@sumone.com.br