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
430
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.9k
Other Decks in Technology
See All in Technology
2024AWSで個人的にアツかったアップデート
nagisa53
1
110
Goで実践するBFP
hiroyaterui
1
130
コスト削減と精度維持を両立!類似画像検索システムの内製化成功事例
shutotakahashi
0
160
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
610
30分でわかる「リスクから学ぶKubernetesコンテナセキュリティ」/30min-k8s-container-sec
mochizuki875
3
460
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
2
750
Building Scalable Backend Services with Firebase
wisdommatt
0
110
データ基盤におけるIaCの重要性とその運用
mtpooh
4
700
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
260
ABWGのRe:Cap!
hm5ug
1
140
デジタルアイデンティティ人材育成推進ワーキンググループ 翻訳サブワーキンググループ 活動報告 / 20250114-OIDF-J-EduWG-TranslationSWG
oidfj
0
570
Featured
See All Featured
Building Your Own Lightsaber
phodgson
104
6.2k
Fireside Chat
paigeccino
34
3.1k
Six Lessons from altMBA
skipperchong
27
3.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Faster Mobile Websites
deanohume
305
30k
Site-Speed That Sticks
csswizardry
3
280
Why Our Code Smells
bkeepers
PRO
335
57k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
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