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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
George Leontiev
February 21, 2019
Technology
170
0
Share
GraphQL at Twitter
George Leontiev
February 21, 2019
More Decks by George Leontiev
See All by George Leontiev
Typelevel programming in Scala (with lies)
folone
0
480
Case study: typelevel programming in real world
folone
1
630
Type level programming in Scala
folone
0
520
ScalaUA: Typelevel Scala
folone
2
230
Hands-on TLC
folone
2
980
42: Rise of the dependent types
folone
2
490
∃ PROLOG |PROLOG ∈ SCALA
folone
5
1.1k
42.type: Literal-based Singleton types
folone
4
1.6k
There's a Prolog in your Scala!
folone
6
4.1k
Other Decks in Technology
See All in Technology
不確実性と戦いながら見積もりを作成するプロセス/mitsumori-process
hirodragon112
1
180
Move Fast and Break Things: 10 in 20
ramimac
0
120
Goビルドを理解し、 CI/CDの高速化に挑む
satoshin
0
100
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
420
【関西電力KOI×VOLTMIND 生成AIハッカソン】空間AIブレイン ~⼤阪おばちゃんフィジカルAIに続く道~
tanakaseiya
0
110
Amazon Qはアマコネで頑張っています〜 Amazon Q in Connectについて〜
yama3133
1
170
VSCode中心だった自分がターミナル沼に入門した話
sanogemaru
0
900
脳が溶けた話 / Melted Brain
keisuke69
1
1.2k
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
150
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
130
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
77k
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
160
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.6k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
92
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
AI: The stuff that nobody shows you
jnunemaker
PRO
4
500
What's in a price? How to price your products and services
michaelherold
247
13k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Evolving SEO for Evolving Search Engines
ryanjones
0
170
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
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