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
Server Push Middleware "Plasma"
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
stormcat24
April 29, 2017
Programming
5.8k
2
Share
Server Push Middleware "Plasma"
stormcat24
April 29, 2017
More Decks by stormcat24
See All by stormcat24
素早く賢く失敗するDeveloper Productivityの実現を目指して
stormcat24
4
5.3k
KubernetesのマニフェストをそれなりにCIしたい
stormcat24
4
1.5k
令和時代のSaaS開発
stormcat24
1
340
History in 5 years of CircleCI and CyberAgent
stormcat24
3
900
Kubernetes Handson Osaka
stormcat24
5
630
Kubernetes Handson
stormcat24
5
4.5k
DockerとKubernetesでアプリケーション開発にコンテナをフル活用!
stormcat24
0
370
Base Image Journey 2018
stormcat24
30
140k
kotlin-fest
stormcat24
13
18k
Other Decks in Programming
See All in Programming
ルールルルルルRubyの中身の予備知識 ── RubyKaigiの前に予習しなイカ?
ydah
1
170
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
270
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
150
Oxlintとeslint-plugin-react-hooks 明日から始められそう?
t6adev
0
210
事業会社でのセキュリティ長期インターンについて
masachikaura
0
250
Swift Concurrency Type System
inamiy
0
490
Rethinking API Platform Filters
vinceamstoutz
0
11k
ハンズオンで学ぶクラウドネイティブ
tatsukiminami
0
120
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
170
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
510
「速くなった気がする」をデータで疑う
senleaf24
0
170
Nuxt Server Components
wattanx
0
270
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Building Applications with DynamoDB
mza
96
7k
The untapped power of vector embeddings
frankvandijk
2
1.7k
Building AI with AI
inesmontani
PRO
1
890
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
It's Worth the Effort
3n
188
29k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
490
We Are The Robots
honzajavorek
0
210
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
WCS-LA-2024
lcolladotor
0
530
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!