Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Going Serverless with GraphQL
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Steve Faulkner
October 20, 2017
Technology
87
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Going Serverless with GraphQL
Presented at O'Reilly Velocity London on 10/20/17
Steve Faulkner
October 20, 2017
More Decks by Steve Faulkner
See All by Steve Faulkner
Shipping TypeScript to npm
southpolesteve
2
410
Hitchhiker's Guide to Serverless @ QCon London
southpolesteve
0
52
Hitchhiker's Guide to Serverless - Node Interactive
southpolesteve
0
93
Full Stack Serverless @ DevOps Days Boston
southpolesteve
0
48
Full Stack Serverless Applications @ MidwestJS
southpolesteve
0
230
Other Decks in Technology
See All in Technology
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
210
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
150
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
310
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
120
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
130
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
300
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
0
1.4k
Snowflakeで実現する全社横断の顧客の声(VOC)分析・活用基盤@Snowflake World Tour Tokyo 2026
yuto16
0
160
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
220
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
1
210
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
370
20260912_スクフェス三河
kgnkhkr
0
270
Featured
See All Featured
HDC tutorial
michielstock
2
860
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
A Tale of Four Properties
chriscoyier
163
24k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Facilitating Awesome Meetings
lara
57
7.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
Deep Space Network (abreviated)
tonyrice
0
300
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
Bash Introduction
62gerente
615
220k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
490
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
202
76k
Transcript
Going Serverless with GraphQL
Steve Faulkner @southpolesteve
None
None
The Hitchhiker’s Guide to Serverless
None
“Could he have used more buzzwords?”
None
Going Serverless with GraphQL
An oral history of Bustle architecture
None
80+ million readers
2 Years
100% production serverless + graphQL
100% production serverless + graphQL * mostly *
An oral history of Bustle architecture
August 2013
Rails + Heroku
August 2015
None
Rails Redis Postgres Elasticsearch Sphinx
None
EC2 + Opsworks
Issues: Rails + Postgres EC2 Autoscaling
AWS API Gateway
AWS Lambda
AWS Lambda + AWS API Gateway
None
“serverless”
there are still servers…
servers platforms!
Episode 1: It Begins
Node.js Lambda API Gateway REST API
EC2 ~$2500/mo
lambda api gateway ~$400/mo
None
None
deployment :/
None
https://github.com/bustle/shep
None
November 2015
Episode 2: the serverless front end
None
None
Node.js + preact Lambda microservice-ish API Gateway HTML
None
the servers are down!
Pop Quiz: Default max # of redis connections
10,000
nothing is a silver bullet
None
Spring 2016
GraphQL
None
“A query language for your API”
“coalesce the sundry key-value store back-end APIs which existed at
the time”
Schema Query Data
type Query { me: User } type User { id:
ID name: String }
{ me { name } }
{ "me": { "name": “Steve" } }
None
None
types
APIs are contracts
Give me a vehicle
None
Give me a car. With 6 seats. That is red.
And has a bike rack. Include the bikes. Mountain Bikes. With tires.
“Sounds like WSDL with less ceremony”
Yup
GraphQL = Happy Developers
Summer 2016
Rails Redis Postgres Elasticsearch Sphinx Node.js Lambda API Gateway graphQL
purescript
“serverless”
serverless
“serverless” 2.0
servers platforms events!
API Gateway Dynamo Kinesis SNS S3 Cognito Elasticache
API Gateway Dynamo Kinesis SNS S3 Cognito Elasticache
FaaS = Cloud Glue
FaaS = Boring
September 2016
Episode 3: All In!
None
the serverless servers are down!
account level concurrency limit
None
November 2016
Episode 4: Let’s write a graph database
100% Lambda 100% GraphQL
“coalesce the sundry key-value store back-end APIs which existed at
the time”
Issues: too many databases :/
redis + graphQL
None
hexastores redis sorted sets graphQL dataloader
Recap
REST API
REST API REST API
REST API REST API GraphQL
June 2017
Episode 5: How do you buy a company?
+
REST API REST API GraphQL 3rd Party
REST API REST API GraphQL 3rd Party
REST API REST API GraphQL 3rd Party
REST API REST API GraphQL 3rd Party
REST API REST API GraphQL 3rd Party
REST API GraphQL REST API GraphQL 3rd Party
REST API GraphQL REST API GraphQL 3rd Party
3 Approaches…
1. Build new APIs
2. Wrap legacy APIs
Read through Copy on Read/Write Dual Writes Replace
Data Cruft?
3. Import data with mutations
input EliteDailyImport { id: ID name: String url: URL authorID:
Int! }
Runtime Types Crufty Legacy Data
None
What next?
tweetable controversial thoughts
containers
“Docker who?”
What is “serverless”?
No one wants Multi-Cloud FaaS
FaaS is boring
Evented architectures are fun!
Serverless Databases
Deployment frameworks are boring
Architecture frameworks are fun!
Infrastructure as Code
Infrastructure as Code
Infrastructure as Config Files
Infrastructure as Config Files
const domain = new AWS.Route53('www.example.com') const fn = new AWS.Lambda('render-html')
const cdn = new Fastly('example-cdn') domain.pipe(cdn).pipe(fn)
const domain = new AWS.Route53('www.example.com') const fn = new AWS.Lambda(‘render-html’,
() => { return ‘<p>hello world</p>’ }) const cdn = new Fastly('example-cdn') pipe(domain, cdn, fn)
questions? Steve Faulkner @southpolesteve