SlideShare une entreprise Scribd logo
1  sur  40
ota42y
2018/07/25
Shinjuku.rb #63
Rails上でのpub/sub
イベントハンドラの扱い
• ota42y
• サーバサイドエンジニア
• rubyとかrustとかgoとかC++とか
• Twitter、github → ota42y
• 最近はサーバレスしたりGPUで遊んだり
ElasticSerachしたり色々…
自己紹介
• 技術書典4でマイクロサービス本を出した
– https://ota42y.com/blog/2018/04/10/mi
croservices_yorozu_book/
– C94の1日目西め06aで再販した本を出します
自己紹介
イベントドリブンアーキテクチャ
イベントドリブンアーキテクチャ
• イベントベースで情報をやりとりするアーキテクチャ
• 送り手はイベントを起こすだけで受け手を知らない
• 受け手はイベントの監視だけで送り手を知らない
• 疎結合に組める
• 詳しくは過去の発表資料を…
• マイクロサービスにおける 非同期アーキテクチ
• https://www.slideshare.net/ota42y/ss-
80254350
• Rails DMの動画も公開されました
• https://www.youtube.com/watch?v=amsQa
PIajqs
イベントドリブンアーキテクチャ
• AWS SNS/SQSを利用したpub/subシステム
• 送り手はSNSにイベントを送る
• 事前に受け手はキュー(SQS)でSNSをsubscribe
SNS/SQSによるイベントドリブン
Lifelog Ranking
Point
AWS SNS
AWS SQS
• AWS SNS/SQSを利用したpub/subシステム
• 送り手はSNSにイベントを送る
• 事前に受け手はキュー(SQS)でSNSをsubscribe
• SNSはイベントをSQSにコピーして送ってくれる
• サーバのworkerがSQSを監視して中身を取り出す
SNS/SQSによるイベントドリブン
Lifelog Ranking
Point
AWS SNS
AWS SQS
• AWS SNS/SQSを利用したpub/subシステム
• 送り手はSNSにイベントを送る
• 事前に受け手はキュー(SQS)でSNSをsubscribe
• SNSはイベントをSQSにコピーして送ってくれる
• サーバのworkerがSQSを監視して中身を取り出す
• 今回はこの取り出す部分の話
SNS/SQSによるイベントドリブン
Lifelog Ranking
Point
AWS SNS
AWS SQS
外部イベントの処理フロー
• WorkerがSQSに入っているイベントを取って処理する
イベントドリブンアーキテクチャ
A MyServer
SNS SQS
Login
Event
• WorkerがSQSに入っているイベントを取って処理する
• キューに入るイベントの種類は一つではない
• 送り手は複数種類のイベントをpublishする
• 複数の送り手のイベントをsubscribeしている
イベントドリブンアーキテクチャ
A MyServer
SNS SQS
Login
Event
B
Buy
Event
Logout
Event
• イベントに対して適切に処理を分けないといけない
• 誰がどうやってそれを管理するか
• イベント事の違いをどこで吸収するか
• 交通整理をするのは誰か?という話
イベントドリブンアーキテクチャ
A MyServer
SNS SQS
Login
Event
B
Buy
Event
Logout
Event
?
• この処理フローはRails wayの外
• ActiveJobとかと違って外部から非同期データが来る
• Model層のような場所は共通化したい
• 既存のRails wayとどう整合性を合わせるか
イベントドリブンアーキテクチャ
A MyServer
SNS SQS
Login
Event
B
Buy
Event
Logout
Event
?
既存のレールを知る
HTTP Requestの処理フロー
• リクエストの処理フロー
• リクエストのパスとメソッドを取り出す
• routes.rbのルールに沿って解釈
HTTP Requestの処理フロー
UserControllershow user
Request
create post
Request
routes.rb
PostController
Model
Model
• リクエストの処理フロー
• リクエストのパスとメソッドを取り出す
• routes.rbのルールに沿って解釈
• 見つけたcontrollerを呼び出す
HTTP Requestの処理フロー
UserControllershow user
Request
create post
Request
routes.rb
PostController
Model
Model
• リクエストの処理フロー
• リクエストのパスとメソッドを取り出す
• routes.rbのルールに沿って解釈
• 見つけたcontrollerを呼び出す
• controllerはパラメータを見たりして処理をする
• 処理自体はmodel層とかが基本(のはず)
HTTP Requestの処理フロー
UserControllershow user
Request
create post
Request
routes.rb
PostController
show user
params Model
Model
create post
params
レールに合流する
非同期イベントの処理フロー
Login
Event
Buy
Event
• イベントの処理フローはリクエストの処理を真似できる
イベントの処理フロー
Model
Model
SQS
Login
Event
Buy
Event
• routes.rbがやっていたこと相当
• 取ってきたEventから種類を判定
• どういった処理を実行するかを決定する
イベントの処理フロー
?
?
routes.rbっぽい
何か
?
Model
Model
controllerっぽ
い何か
Login
Event
Buy
Event
• controllerがやっていたこと相当
• パラメータから必要なデータを取り出して実行
イベントの処理フロー
?
?
routes.rbっぽい
何か
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か
Login
Event
Buy
Event
• パラメータを取り出した先はRailsの普通のフロー
• Railsのレールに合流する
イベントの処理フロー
?
?
routes.rbっぽい
何か
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か ここはいつも通り
Login
Event
Buy
Event
• パラメータを取り出した先はRailsの普通のフロー
• Railsのレールに合流する
• 既存のメタファーを活用
• routes.rbとcontrollerがイベント用に形を変えた
イベントの処理フロー
?
?
routes.rbっぽい
何か
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か ここはいつも通り
イベント処理の実装
workerとhandler層
• イベントのプロトコル
• イベントのフォーマットを決める
• イベントのルーティング
• イベントに対応するHandlerを設定
• イベントを処理するHandler層
• controllerに相当するイメージ
イベント処理の実装
Login
Event
Buy
Event
?
?
routes.rbっぽい
何か
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か
• 送り手が自由すぎると受け手が対応するのがつらい
• HTTPだとパスとメソッドでcontrollerを決定できる
• パラメータも決められたところに設定する
• イベント処理では決まりがない…
• routes.rbの役割を誰がやるのか
ルーティングを解決する
この辺
• raising_dragon
• https://github.com/ota42y/rising_dragon
• イベントのルーティングを解決する役割
• shoryukenベースのSQSを見るワーカー機能
• イベント処理のプロトコルを共通化する
• イベント処理のルーティングをする
RisingDragon
• 送り一定のルールに沿ってイベントを送らせる
• イベントのtype、id、タイムスタンプを必須に
• イベント固有のデータをdataの中に
プロトコルを決める
送り手の自由にできる領域
• 送り一定のルールに沿ってイベントを送らせる
• イベントのtype、id、タイムスタンプを必須に
• イベント固有のデータをdataの中に
• 受け手の処理が楽に
• typeは必ずあることが保証される→自動で処理可能
• 受け手はdataだけ見れば良い
プロトコルを決める
送り手の自由にできる領域
• イベントにはtypeが必ず入る
• これを利用してどのクラスを呼び出すかを決める
• イベント名とHandler(後述)クラスを指定する
ルーティングを設定する
• gemで共通化
• RisingDragon
• 送り手と受け手に入れる
• 共通フォーマットは意識しなくていい
• イベント固有のデータだけ考える
ルーティングの解決まとめ
RisingDragon
Login
Event
Buy
Event
?
?
login event
params Model
Model
buy event
params
controllerっぽ
い何か
• イベントにおけるcontrollerの役割
• 送られてきたデータを取り出す
Handler層
LoginHandler
BuyHandler
Handler
Login
Event
Buy
Event
login event
params Model
Model
buy event
params
RisingDragon
• eventのdataを見て処理する
• 必要なものはdataに全部入ってるはず
• typeでクラスが決まるのでそれは見なくていい
• controllerでpathは普通見ないし
Handler層
LoginHandler
BuyHandler
login event
params Model
Model
buy event
params
Handler
• eventとRailsのレールとの橋渡し役
• この層から先は通常のRailsのフローに乗せる
• Modelとかに処理をさせる
• renderしないcontrollerのような役割
• app/handler以下にファイルを置いてる
Handler層
LoginHandler
BuyHandler
login event
params Model
Model
buy event
params
Handler
まとめ
まとめ
• イベントドリブンアーキテクチャはRailsのレールの外
• Railsのレールにうまく合流したい
• routes.rbとcontrollerのメタファーを利用する
• controller層に相当するhandler層の提案
• eventとhandlerの対応付けを記述する
LoginHandler
BuyHandler
Handler
Login
Event
Buy
Event
login event
params Model
Model
buy event
params
ルーティング層
まとめ
• 送り手〜受け手のイベント形式を決める
• RisingDragon
• 送ってからhandlerまでの処理は自動で行われる
• Handlerの中だけを書けば良くなる
A
SNS SQS
Login
Event
B
Buy
Event
Logout
Event
LoginHandler
BuyHandler
Handler
RisingDragon

Contenu connexe

Tendances

Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Yahoo!デベロッパーネットワーク
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?Teppei Sato
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話Yuhei Miyazato
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについてmoai kids
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionYoshifumi Kawai
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?naoki koyama
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版貴志 上坂
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることShingo Fukui
 

Tendances (20)

Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
Oss貢献超入門
Oss貢献超入門Oss貢献超入門
Oss貢献超入門
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 

Similaire à Rails上でのpub/sub イベントハンドラの扱い

なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話ota42y
 
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話ota42y
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いota42y
 
bootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのかbootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのかota42y
 
goroutineはどうやって動いているのか
goroutineはどうやって動いているのかgoroutineはどうやって動いているのか
goroutineはどうやって動いているのかota42y
 
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点ota42y
 
Rails5クイックスタート
Rails5クイックスタートRails5クイックスタート
Rails5クイックスタートHirata Tomoko
 
個人開発 in フィリピン
個人開発 in フィリピン個人開発 in フィリピン
個人開発 in フィリピンdeeeki
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話R S
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Developmentaktsk
 
SNS 「github」で遊ぼう
SNS 「github」で遊ぼうSNS 「github」で遊ぼう
SNS 「github」で遊ぼうTomohiko Himura
 
ArduinoとMicrosoft AzureでIoTっぽいことをしてみた
ArduinoとMicrosoft AzureでIoTっぽいことをしてみたArduinoとMicrosoft AzureでIoTっぽいことをしてみた
ArduinoとMicrosoft AzureでIoTっぽいことをしてみたKaori Emi
 
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)Itsuki Sakitsu
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景Ryunosuke SATO
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018Yutaka Tachibana
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例Naoto Koshikawa
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係sady_nitro
 
初めてつくる Webアプリの開発戦略
初めてつくる Webアプリの開発戦略初めてつくる Webアプリの開発戦略
初めてつくる Webアプリの開発戦略Masato Koishi
 
Thin reports再び
Thin reports再びThin reports再び
Thin reports再びsy250
 

Similaire à Rails上でのpub/sub イベントハンドラの扱い (20)

なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話
 
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
bootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのかbootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのか
 
goroutineはどうやって動いているのか
goroutineはどうやって動いているのかgoroutineはどうやって動いているのか
goroutineはどうやって動いているのか
 
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点
 
Rails5クイックスタート
Rails5クイックスタートRails5クイックスタート
Rails5クイックスタート
 
個人開発 in フィリピン
個人開発 in フィリピン個人開発 in フィリピン
個人開発 in フィリピン
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Development
 
Ruby with My Life
Ruby with My LifeRuby with My Life
Ruby with My Life
 
SNS 「github」で遊ぼう
SNS 「github」で遊ぼうSNS 「github」で遊ぼう
SNS 「github」で遊ぼう
 
ArduinoとMicrosoft AzureでIoTっぽいことをしてみた
ArduinoとMicrosoft AzureでIoTっぽいことをしてみたArduinoとMicrosoft AzureでIoTっぽいことをしてみた
ArduinoとMicrosoft AzureでIoTっぽいことをしてみた
 
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
vendoring が無くなると Go x Github private repo x Docker 運用が地味に面倒になって困る話 (未完)
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係
 
初めてつくる Webアプリの開発戦略
初めてつくる Webアプリの開発戦略初めてつくる Webアプリの開発戦略
初めてつくる Webアプリの開発戦略
 
Thin reports再び
Thin reports再びThin reports再び
Thin reports再び
 

Plus de ota42y

ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ota42y
 
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方ota42y
 
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説ota42y
 
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話ota42y
 
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守るota42y
 
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究HCI分野の紹介と最新研究
HCI分野の紹介と最新研究ota42y
 

Plus de ota42y (6)

ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
 
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方
 
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説
 
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話
 
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る
 
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
 

Rails上でのpub/sub イベントハンドラの扱い

Notes de l'éditeur

  1. この中に、マイクロサービスアーキテクチャを知ってる人どれくらいいますか? ありがとうございます、以外と少なくて資料作った会がありました…
  2. この中に、マイクロサービスアーキテクチャを知ってる人どれくらいいますか? ありがとうございます、以外と少なくて資料作った会がありました…