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
140
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
450
Case study: typelevel programming in real world
folone
1
590
Type level programming in Scala
folone
0
480
ScalaUA: Typelevel Scala
folone
2
200
Hands-on TLC
folone
2
940
42: Rise of the dependent types
folone
2
460
∃ 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
4k
Other Decks in Technology
See All in Technology
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
2
200
開発生産性を測る前にやるべきこと - 組織改善の実践 / Before Measuring Dev Productivity
kaonavi
11
4.9k
MUITにおける開発プロセスモダナイズの取り組みと開発生産性可視化の取り組みについて / Modernize the Development Process and Visualize Development Productivity at MUIT
muit
2
17k
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
190
PO初心者が考えた ”POらしさ”
nb_rady
0
210
AI専用のリンターを作る #yumemi_patch
bengo4com
5
4.3k
インフラ寄りSREの生存戦略
sansantech
PRO
0
170
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
4
3.9k
Enhancing SaaS Product Reliability and Release Velocity through Optimized Testing Approach
ropqa
1
230
Model Mondays S2E04: AI Developer Experiences
nitya
0
140
Claude Code に プロジェクト管理やらせたみた
unson
6
4.2k
20250705 Headlamp: 專注可擴展性的 Kubernetes 用戶界面
pichuang
0
270
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Gamification - CAS2011
davidbonilla
81
5.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
We Have a Design System, Now What?
morganepeng
53
7.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Making Projects Easy
brettharned
116
6.3k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Producing Creativity
orderedlist
PRO
346
40k
RailsConf 2023
tenderlove
30
1.1k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
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