Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ElixirでNode.jsを倒す
Search
さっちゃん
May 10, 2017
Programming
0
1.9k
ElixirでNode.jsを倒す
さっちゃん
May 10, 2017
Tweet
Share
More Decks by さっちゃん
See All by さっちゃん
みんなのオブザーバビリティプラットフォームを作ってるんだがパフォーマンスがやばい #mackerelio #srenext
ne_sachirou
0
1.3k
作ってよかったgraceful shutdownライブラリ #kyotogo
ne_sachirou
0
1.2k
path 依存型って何?
ne_sachirou
0
540
野生の onbording と onbording 設計 #kyototechtalk
ne_sachirou
0
600
メトリックはいかにして見え續ける樣になったか #devio2022
ne_sachirou
0
74
名實一致
ne_sachirou
0
630
まかれるあなとみあ ―Mackerel のしくみを理解する 30 分― @ Hatena Engineer Seminar #16
ne_sachirou
0
3k
tacit programming : Point-free, Concatenatives & J
ne_sachirou
0
900
Monitoring Containerized Elixir
ne_sachirou
1
940
Other Decks in Programming
See All in Programming
Spring gRPC について / About Spring gRPC
mackey0225
0
220
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
120
時計仕掛けのCompose
mkeeda
1
300
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
480
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
250
もう僕は OpenAPI を書きたくない
sgash708
5
1.6k
GoとPHPのインターフェイスの違い
shimabox
2
190
楽しく向き合う例外対応
okutsu
0
120
ARA Ansible for the teams
kksat
0
150
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
37
14k
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
560
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.1k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Faster Mobile Websites
deanohume
306
31k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
Speed Design
sergeychernyshev
27
790
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Designing for Performance
lara
604
68k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Building Applications with DynamoDB
mza
93
6.2k
Transcript
ElixirでNode.jsを倒す
.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)
.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)
Chat
We ♥ chat & we ♥ ChatOps.
Weʼll make bots.
Elixir has Hedwig.
Elixir has Hedwig. defmodule HedwigDemo.Responders.Ping do @moduledoc ””” ping-pong ”””
use Hedwig.Responder hear ~r/ping/i, msg do reply msg, “pong” end end
Compare Hedwig with another chat-bot framework.
Compare Hedwig with another chat-bot framework. Botkit !
Botkit Hedwig
Botkit Hedwig
single thread event loop callback
single thread event loop callback fail!
single thread event loop callback fail! System down!
sup process process process
sup process process process fail!
sup process process process fail! process re-spawn!
Demo client 接 續 接 續 接 續 bot ping
pong ping pong ping pong
Demo client 接 續 接 續 接 續 proc proc
proc
Demo client 接 續 接 續 接 續 proc
Demo `make pressure` ne-sachirou/exconfjp2017
Benchmark
Benchmark
Benchmark
Botkit Hedwig 速い 竝列に動く エラーからの恢復が遲い 速い 竝列に動く+竝⾏に動く エラーから素早く恢復する