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
GraphQL at Twitter
Search
George Leontiev
February 21, 2019
Technology
0
120
GraphQL at Twitter
George Leontiev
February 21, 2019
Tweet
Share
More Decks by George Leontiev
See All by George Leontiev
Typelevel programming in Scala (with lies)
folone
0
430
Case study: typelevel programming in real world
folone
1
570
Type level programming in Scala
folone
0
420
ScalaUA: Typelevel Scala
folone
2
180
Hands-on TLC
folone
2
910
42: Rise of the dependent types
folone
2
440
∃ PROLOG |PROLOG ∈ SCALA
folone
5
1.1k
42.type: Literal-based Singleton types
folone
4
1.5k
There's a Prolog in your Scala!
folone
6
3.8k
Other Decks in Technology
See All in Technology
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Application Development WG Intro at AppDeveloperCon
salaboy
0
200
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
490
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
10
1.3k
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
220
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.3k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
180
強いチームと開発生産性
onk
PRO
35
11k
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
170
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
Featured
See All Featured
What's new in Ruby 2.0
geeforr
343
31k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Navigating Team Friction
lara
183
14k
Building Adaptive Systems
keathley
38
2.3k
Docker and Python
trallard
40
3.1k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
BBQ
matthewcrist
85
9.3k
The Cult of Friendly URLs
andyhume
78
6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
GraphQLとの向き合い方2022年版
quramy
43
13k
Code Reviewing Like a Champion
maltzj
520
39k
Happy Clients
brianwarren
98
6.7k
Transcript
George Leontiev AgentConf — February 2019
George Leontiev @YukiFartlek
None
None
None
Datastorage Thrift HTTP
HTTP Thrift Datastorage
HTTP Thrift Datastorage
None
HTTP Thrift GraphQL API
Schema
None
A federated database brings together multiple data sources so that
they can be queried and mutated uniformly.
GraphQL brings together multiple data sources so that they can
be queried and mutated uniformly.
Strato brings together multiple data sources so that they can
be queried and mutated uniformly.
Column({ name = "User/birthday", source = DbColumn({ dest = "twitter_db",
dataset = "birthdays", mapping = KeyValue({ key = Type(Long), // User ID value = Type(Long) // Timestamp }) }) })
Column({ name = "User/birthday", source = DbColumn({ dest = "twitter_db",
dataset = "birthdays", mapping = KeyValue({ key = Type(Long), // User ID value = Type(Long) // Timestamp }) }), graphql = Field("User", "birthday") })
Subscriptions
None
Clients subscribe to an event with a GraphQL query and
receive payloads. — Laney Kuenzel
Clients subscribe to an event with a GraphQL query and
receive payloads.
Subscriptions EventBus Event Producer
Clients subscribe to an event with a GraphQL query and
receive payloads.
def execute( query, against: Event, as: User ): Payload
{ "query": "subscription { random_tweet { id } }", "event":
{ "type": "random_tweet", "tweet_id": "..." }, "user": { "id": "12" } }
API EventBus Event Producer Subscriptions
Clients subscribe to an event with a GraphQL query and
receive payloads.
None
Live Pipeline { "topic": "tweet_engagement/20", "payload": { ... } }
POST /subscribe?topic= tweet_engagement/20
def topic( query, for: User ): String
subscription { random_tweet { __typename ... on Status { topic
} ... on Tweet { id text } } } { "data": { "random_tweet": { "__typename": "Status", "topic": "graphql/sM_xI92k" } } }
{ "topic": "graphql/sM_xI92k", "payload": { "data": { "random_tweet": { "__typename":
"Tweet", "id": "...", "text": "..." } } } } POST /subscribe?topic= graphql/sM_xI92k Live Pipeline
Subscriptions API Live Pipeline EventBus subscription { random_tweet { ...
} } { "topic": "graphql/sM_xI92k", "payload": { "data": { "random_tweet": { ... } } } } { "random_tweet_id": "..." } { ... "topic": "graphql/sM_xI92k" ... } Event Producer
Tips
None
None
None
{ user(id: "12") { name followers { name followers {
name followers { name followers { name } } } } } }
POST /graphql/eyBuaWNlIHsgdHJ5IH0gfQ
enabling technology noun An invention or innovation, that can be
applied to drive radical change in the capabilities of a user or culture. Enabling technologies are characterized by rapid development of subsequent derivative technologies, often in diverse fields.
adjacent possible noun A kind of shadow future, hovering on
the edges of the present state of things, a map of all the ways in which the present can reinvent itself.
None
George Leontiev @YukiFartlek
None