Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Server Push Middleware "Plasma"
stormcat24
April 29, 2017
Programming
2
4.1k
Server Push Middleware "Plasma"
stormcat24
April 29, 2017
Tweet
Share
More Decks by stormcat24
See All by stormcat24
stormcat24
3
530
stormcat24
1
160
stormcat24
3
620
stormcat24
4
430
stormcat24
5
3.4k
stormcat24
0
200
stormcat24
12
20k
stormcat24
13
13k
stormcat24
0
600
Other Decks in Programming
See All in Programming
yaamaa
0
460
akatsukinewgrad
0
220
taoshotaro
1
370
line_developers_tw2
0
920
azdaroth
0
100
balestrapatrick
0
110
horie1024
1
430
kgmyshin
1
290
steipete
PRO
2
180
inoue2002
0
290
line_developers_tw2
0
930
ken3ypa
0
170
Featured
See All Featured
danielanewman
1
480
brianwarren
83
4.7k
addyosmani
311
21k
kneath
219
15k
tammielis
237
23k
jponch
103
5k
jonyablonski
14
1.1k
dougneiner
119
7.8k
rmw
11
750
rocio
155
11k
stephaniewalter
260
11k
lauravandoore
437
28k
Transcript
Server Push Middleware “Plasma” @stormcat24 2017.04.29 そうだ Go、京都。
‣ CyberAgent, Inc. ‣ FRESH! https://freshlive.tv ‣ FRESH!はmackerelを利用しています(これ大事) ‣ http://blog.stormcat.io
‣ ワタシGoチョットデキル ‣ 最近の興味はRustとKotlin stormcat24
天皇賞のついでに喋りに来ました
突然ですがポーリングしてますか
ポーリングのシーン・・・ ‣ アプリケーションの状態変化の検知 ‣ 通知を疑似的にServer Pushぽく見せたり ‣ Job Queueのロングポーリング
あまりにも多くの HTTPリクエストが討ち死にしてきた ほぼ同じレスポンスだというのに・・・ ※応仁の乱
世の中のポーリングを撲滅したい
https://github.com/openfresh/plasma
Plasma is ‣ Go製の汎用的なServer Push型ミドルウェア ‣ gRPC StreamとServer-Sent Event(SSE)に対応 ‣
Web/iOS/Android/Serverから状態変化検知を撲滅したくて構想 ‣ 実装はインターン生(@upamune)がほぼ一人でやった
クライアントは必要なイベントタイプを指定し、 subscribeするだけでデータが降ってくる
Plasmaへの接続 ‣ gRPC Streamの場合 ‣ proto定義がPlasmaのリポジトリにあるので、protogenでstubを作る ‣ SSEの場合 ‣ polyfillあります
https://github.com/Yaffle/EventSource ‣ サーバから一定期間データが来ないと接続が切れるブラウザがあるの で、Plasmaは切れないようにHeartbeatする
ユースケース ‣ 状態変化の監視のためポーリングをサーバプッシュに置き換える ‣ Microservices間で別のサービスで起きたイベントを受け取る ‣ Microservicesを跨いだキャッシュの伝搬(試験運用中!)
Server Pushはいいぞ
さあ、ポーリングの屍を乗り越えて行こう ※現在進捗10%
Thanks!