SlideShare a Scribd company logo
データ変更情報を受け取る
subscription
で出来ること
次世代データAPIのGraphQLとJavaScript実装のApollo 勉強会
2017-4-22
福井眞吾
❖ 福井 眞吾(ふくい しんご) @SilkAndTiki
❖ コンピュータ&通信機器メーカー勤務
❖ 昨年、役職定年になり、週休3日制を選択
毎週、金・土・日が休日
❖ IoTを勉強し始めました
❖ ギークオフィス恵比寿メンバー
「すごーい たーのしー」の次へ
query データを取得できる
mutation データを変更できる
よし、アプリ作るぞ!
query データを取得できる
mutation データを変更できる
よし、アプリ作るぞ!
graphQL
Server
graphQL
Client
graphQL
Client
太郎
?花子
mutation
graphQL
Server
graphQL
Client
変化
ここの仕組み
live queries
subscriptions
?他にもあるらしい
Live queries
queryで取得したデータに変更があったら通知してもらえる
live directive
更新される
あまり実装が進んでいないかも?
更新情報
Subscriptions
https://github.com/facebook/graphql/pull/267
http://dev.apollodata.com/react/subscriptions.html
https://dev-blog.apollodata.com/how-to-use-subscriptions-in-graphiql-1d6ab8dbd74b
https://www.graph.cool/blog/2017-02-28-introducing-graphql-subscriptions-in4ohtae4e/
Graphcoolでの
Subscriptions
https://github.com/graphcool-examples/react-apollo-instagram-subscriptions-example
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
どの変化が起こったか
変化後のデータ
CREATED
UPDATED
DELETED
subscription宣言
callback関数
subscribeToMore関数
変化前のデータ
条件の指定
CREATED
UPDATED
DELETED
新規に作成されたPostで
descriptionが”cat”なら通知
参考: graphcoolサーバでは、Strig型の
descriptionに対して下記の条件が
使えるようである
graphcoolでのデモ
graphQL
Server
graphQL
Client
graphcoolapollo + react+browser
graphcool console
Post
受信したデータsubscription定義
Server側の実装
挙動
ネットワークコネクションが切れた時
Server側の負荷

More Related Content

PDF
イミュータブルデータモデル(入門編)
PDF
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
PDF
SQL大量発行処理をいかにして高速化するか
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
PDF
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
PPTX
本当は恐ろしい分散システムの話
PPTX
ぱぱっと理解するSpring Cloudの基本
PDF
PlaySQLAlchemy: SQLAlchemy入門
イミュータブルデータモデル(入門編)
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
SQL大量発行処理をいかにして高速化するか
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
本当は恐ろしい分散システムの話
ぱぱっと理解するSpring Cloudの基本
PlaySQLAlchemy: SQLAlchemy入門

What's hot (20)

PDF
インフラエンジニアの綺麗で優しい手順書の書き方
PDF
GraphQL入門 (AWS AppSync)
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
PDF
マルチテナント化で知っておきたいデータベースのこと
PDF
怖くないSpring Bootのオートコンフィグレーション
PDF
例外設計における大罪
PDF
Fluentdのお勧めシステム構成パターン
PDF
ストリーム処理を支えるキューイングシステムの選び方
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
PDF
Ansibleで始めるインフラ構築自動化
PDF
Amazon Aurora - Auroraの止まらない進化とその中身
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
PDF
マイクロにしすぎた結果がこれだよ!
PDF
Where狙いのキー、order by狙いのキー
PPTX
コンテナネットワーキング(CNI)最前線
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PPTX
Dockerからcontainerdへの移行
インフラエンジニアの綺麗で優しい手順書の書き方
GraphQL入門 (AWS AppSync)
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
マルチテナント化で知っておきたいデータベースのこと
怖くないSpring Bootのオートコンフィグレーション
例外設計における大罪
Fluentdのお勧めシステム構成パターン
ストリーム処理を支えるキューイングシステムの選び方
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Ansibleで始めるインフラ構築自動化
Amazon Aurora - Auroraの止まらない進化とその中身
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
マイクロにしすぎた結果がこれだよ!
Where狙いのキー、order by狙いのキー
コンテナネットワーキング(CNI)最前線
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
アーキテクチャから理解するPostgreSQLのレプリケーション
Dockerからcontainerdへの移行
Ad

GraphQLのsubscriptionで出来ること