SlideShare a Scribd company logo
Build Scalable
APIs using
GraphQL and
Serverless
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
–-Lee Byron
a data-fetching API powerful
enough to describe all of
Facebook
@simona_cotin
@simona_cotin
https://facebook.com/user/id
https://facebook.com/user/id/events
https://facebook.com/user/id/friends-suggestions
https://facebook.com/user/id/friends-birthdays
@simona_cotin
https://facebook.com/user/id/events
{
"name": "HelsinkiJS",
"location": "Helsinki",
"organiser": "Citrus",
"attendees": [
{
"name": “Sarah Drasner",
"company": “Microsoft",
"role": "Chef Of Avocados 🥑"
}
]
@simona_cotin
@simona_cotin
Overfetch
Or
New endpoint
@simona_cotin
@simona_cotin
https://facebook.com/user/id/friends-suggestions
{
"name": "Golnaz Badazadeh",
"profile_pic": "some_url",
"mutual_friends": []
}
@simona_cotin
https://facebook.com/user/id/friends-suggestions/id/mutual{
"mutual_friends": [
{
"name": "Sarah Drasner",
"profile_pic": "some_url",
"tag": "Amazing!"
}
]
}
@simona_cotin
Underfetch
Or
New endpoint
@simona_cotin
Delay User Perception
0-100 ms Instant
100-300 ms Small perceptible delay
300-1000 ms Machine is working
1000+ ms Likely context switch
10000+ ms Task is abandoned
High performance Browser Networking
@simona_cotin
–-Ilya Grigorik
The fastest network request is a
request not made
@simona_cotin
user(id:1) {
name
events {
count
}
friends_suggestions {
name
mutual_friends {
count
}
}
}
}
"data": {
"user": {
"name": "Simona Cotin",
"events": {
"count": 4
},
"friends_suggestions": {
"name": "Golnaz Babazadeh",
"mutual_friends": {
"count": 15
}
}
}
@simona_cotin
Schema driven
development
@simona_cotin
Strongly typed
@simona_cotin
type People {
id: ID!
name: String
avatar: URL
}
@simona_cotin
type People {
id: ID!
name: String
avatar: URL
}
type Team {
id: ID!
name: String
points: Int
people: [People]
@simona_cotin
type Query {
teams: [Team]
}
type Mutation {
incrementPoints(id: ID!): Team
}
@simona_cotin
teams: async () => {
let teams = await axios.get(
'https://graphqlvoting.azurewebsites.net/api/score'
);
return teams.data;
},
incrementPoints: async obj => {
let response = await axios.get(
`https://graphqlvoting.azurewebsites.net/api/score/${obj.id}`
);
return response.data;
}
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
✓ Performance
✓ Flexibility
✓ Tooling
@simona_cotin
Serverless
@simona_cotin
–-Steve Jobs
The line of code that’s the
fastest to write, that never breaks,
that doesn’t need maintenance,
is the line you never had to write.
@simona_cotin
module.exports = async function(context, req) {
context.res = {
body: 'Hello ' + req.query.name
};
};
@simona_cotin
Right-Click
Deploy
@simona_cotin
Github
Deploy
@simona_cotin
@simona_cotin
Datasources
3rd party APIs
@simona_cotin
@simona_cotin
{
"type": "cosmosDB",
"name": "inputDocument",
"databaseName": "admin",
"collectionName": "Recipes",
"connectionStringSetting": "tacos-sql_DOCUMENTDB",
“direction": "in"
}
@simona_cotin
module.exports = async function(context, req) {
context.res = {
body: context.bindings.inputDocument
};
};
@simona_cotin
✓ Reusable API
✓ VS Code dev & debug
✓ Easy Integration
Datasources
@simona_cotin
No servers
to
manage
@simona_cotin
Serverless
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
const body = req.body;
let response = await graphql(
typeDefs,
body.query,
root,
null,
body.variables,
body.operationName
);
context.res = {
body: response
};
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
Easy Integration of Datasources
Autoscalability
Less code
Easy Abstraction of Datasources
Single Endpoint
Smaller no requests
Serverless GraphQL
@simona_cotin
Easy Integration of Datasources
Easy Abstraction of Datasources
Autoscalability
Single Endpoint
Less code
Smaller no requests
Dev productivity
@simona_cotin
Achieve more
by
doing less
@simona_cotin
@simona_cotin
https://github.com/sim
onaco/serverless-
graphql-workshop
https://aka.ms/learn-
serverless

More Related Content

What's hot

Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
MobileMoxie
 
Mobile-First Indexing & The Story Your Data Isn't Telling You
Mobile-First Indexing & The Story Your Data Isn't Telling YouMobile-First Indexing & The Story Your Data Isn't Telling You
Mobile-First Indexing & The Story Your Data Isn't Telling You
MobileMoxie
 
Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...
Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...
Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...
Sophie Gibson
 
What You Need to Know About Google App Indexing - SMX West 2016
What You Need to Know About Google App Indexing - SMX West 2016What You Need to Know About Google App Indexing - SMX West 2016
What You Need to Know About Google App Indexing - SMX West 2016
MobileMoxie
 
BrightonSEO - Proactive Competitive Intelligence or “Where the *^%&# Should I...
BrightonSEO - Proactive Competitive Intelligence or “Where the *^%&# Should I...BrightonSEO - Proactive Competitive Intelligence or “Where the *^%&# Should I...
BrightonSEO - Proactive Competitive Intelligence or “Where the *^%&# Should I...
AlexandraTachalova
 
aaisp
aaispaaisp
aaisp
SalesLoft
 
Ashley Berman Hale "SEO Alchemy: Location-Based Mobile Search" - MozLocal 2017
Ashley Berman Hale "SEO Alchemy: Location-Based Mobile Search" - MozLocal 2017Ashley Berman Hale "SEO Alchemy: Location-Based Mobile Search" - MozLocal 2017
Ashley Berman Hale "SEO Alchemy: Location-Based Mobile Search" - MozLocal 2017
MobileMoxie
 
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links By Emily ...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links By Emily ...How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links By Emily ...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links By Emily ...
Search Marketing Expo - SMX
 
SME Content Marketing: Big Results with Small Budgets
SME Content Marketing: Big Results with Small BudgetsSME Content Marketing: Big Results with Small Budgets
SME Content Marketing: Big Results with Small Budgets
Matthew Barby
 
Strange but True: Counterintiutive Paths to Building a Business on APIs
Strange but True: Counterintiutive Paths to Building a Business on APIsStrange but True: Counterintiutive Paths to Building a Business on APIs
Strange but True: Counterintiutive Paths to Building a Business on APIs
Thomas Bouldin
 
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
MobileMoxie
 
SEO - Moving the dial #BrightonSEO - September 2016
SEO - Moving the dial  #BrightonSEO - September 2016SEO - Moving the dial  #BrightonSEO - September 2016
SEO - Moving the dial #BrightonSEO - September 2016
Berian Reed
 
Google App indexing
Google App indexingGoogle App indexing
Google App indexing
Daniele Vitali
 

What's hot (13)

Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
 
Mobile-First Indexing & The Story Your Data Isn't Telling You
Mobile-First Indexing & The Story Your Data Isn't Telling YouMobile-First Indexing & The Story Your Data Isn't Telling You
Mobile-First Indexing & The Story Your Data Isn't Telling You
 
Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...
Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...
Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...
 
What You Need to Know About Google App Indexing - SMX West 2016
What You Need to Know About Google App Indexing - SMX West 2016What You Need to Know About Google App Indexing - SMX West 2016
What You Need to Know About Google App Indexing - SMX West 2016
 
BrightonSEO - Proactive Competitive Intelligence or “Where the *^%&# Should I...
BrightonSEO - Proactive Competitive Intelligence or “Where the *^%&# Should I...BrightonSEO - Proactive Competitive Intelligence or “Where the *^%&# Should I...
BrightonSEO - Proactive Competitive Intelligence or “Where the *^%&# Should I...
 
aaisp
aaispaaisp
aaisp
 
Ashley Berman Hale "SEO Alchemy: Location-Based Mobile Search" - MozLocal 2017
Ashley Berman Hale "SEO Alchemy: Location-Based Mobile Search" - MozLocal 2017Ashley Berman Hale "SEO Alchemy: Location-Based Mobile Search" - MozLocal 2017
Ashley Berman Hale "SEO Alchemy: Location-Based Mobile Search" - MozLocal 2017
 
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links By Emily ...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links By Emily ...How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links By Emily ...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links By Emily ...
 
SME Content Marketing: Big Results with Small Budgets
SME Content Marketing: Big Results with Small BudgetsSME Content Marketing: Big Results with Small Budgets
SME Content Marketing: Big Results with Small Budgets
 
Strange but True: Counterintiutive Paths to Building a Business on APIs
Strange but True: Counterintiutive Paths to Building a Business on APIsStrange but True: Counterintiutive Paths to Building a Business on APIs
Strange but True: Counterintiutive Paths to Building a Business on APIs
 
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
 
SEO - Moving the dial #BrightonSEO - September 2016
SEO - Moving the dial  #BrightonSEO - September 2016SEO - Moving the dial  #BrightonSEO - September 2016
SEO - Moving the dial #BrightonSEO - September 2016
 
Google App indexing
Google App indexingGoogle App indexing
Google App indexing
 

Similar to Build scalable APIs using GraphQL and Serverless

Intro GraphQL
Intro GraphQLIntro GraphQL
Intro GraphQL
Simona Cotin
 
The Flash Facebook Cookbook - FlashMidlands
The Flash Facebook Cookbook - FlashMidlandsThe Flash Facebook Cookbook - FlashMidlands
The Flash Facebook Cookbook - FlashMidlands
James Ford
 
Rapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the CloudRapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the Cloud
Amazon Web Services
 
Scaling an API: From Reboots to Redis, how (not) to do it
Scaling an API: From Reboots to Redis, how (not) to do itScaling an API: From Reboots to Redis, how (not) to do it
Scaling an API: From Reboots to Redis, how (not) to do it
Ciaran Rooney
 
0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
 0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in... 0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
Amazon Web Services
 
Treating APIs as Products: How to Apply Product Management Principles to Your...
Treating APIs as Products: How to Apply Product Management Principles to Your...Treating APIs as Products: How to Apply Product Management Principles to Your...
Treating APIs as Products: How to Apply Product Management Principles to Your...
SmartBear
 
SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...
SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...
SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...
Sébastien Levert
 
OpenGovWest Keynote | OpenGov Platform of the Future
OpenGovWest Keynote | OpenGov Platform of the FutureOpenGovWest Keynote | OpenGov Platform of the Future
OpenGovWest Keynote | OpenGov Platform of the Future
Nik Garkusha
 
Scaling an API: From Reboots to Redis, how (not) to do it
Scaling an API: From Reboots to Redis, how (not) to do itScaling an API: From Reboots to Redis, how (not) to do it
Scaling an API: From Reboots to Redis, how (not) to do it
Ciaran Rooney
 
0 to 100kmh with GraphQL. Rapid API Prototyping usingserverless backend in t...
0 to 100kmh with GraphQL.  Rapid API Prototyping usingserverless backend in t...0 to 100kmh with GraphQL.  Rapid API Prototyping usingserverless backend in t...
0 to 100kmh with GraphQL. Rapid API Prototyping usingserverless backend in t...
Amazon Web Services
 
Prashant Sridharan
Prashant SridharanPrashant Sridharan
Prashant Sridharan
Francisco Saez Cerda
 
APIStrat 2017: API Design in the Age of Bots, IoT, and Voice
APIStrat 2017: API Design in the Age of Bots, IoT, and VoiceAPIStrat 2017: API Design in the Age of Bots, IoT, and Voice
APIStrat 2017: API Design in the Age of Bots, IoT, and Voice
LaunchAny
 
LF_APIStrat17_API Design in the Age of Bots, IoT, and Voice
LF_APIStrat17_API Design in the Age of Bots, IoT, and VoiceLF_APIStrat17_API Design in the Age of Bots, IoT, and Voice
LF_APIStrat17_API Design in the Age of Bots, IoT, and Voice
LF_APIStrat
 
Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop
Serverless Finland Meetup 16.11.2016: Messenger Bot WorkshopServerless Finland Meetup 16.11.2016: Messenger Bot Workshop
Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop
Mikael Puittinen
 
European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...
Sébastien Levert
 
Developing share point solutions with the microsoft graph
Developing share point solutions with the microsoft graphDeveloping share point solutions with the microsoft graph
Developing share point solutions with the microsoft graph
Fernando Leitzelar, MBA, PMP
 
DEV-017_Azure Functions overview and under the hood
DEV-017_Azure Functions overview and under the hoodDEV-017_Azure Functions overview and under the hood
DEV-017_Azure Functions overview and under the hood
decode2016
 
Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08
Ari Leichtberg
 
Creating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn APICreating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn API
Kirsten Hunter
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
Microsoft Tech Community
 

Similar to Build scalable APIs using GraphQL and Serverless (20)

Intro GraphQL
Intro GraphQLIntro GraphQL
Intro GraphQL
 
The Flash Facebook Cookbook - FlashMidlands
The Flash Facebook Cookbook - FlashMidlandsThe Flash Facebook Cookbook - FlashMidlands
The Flash Facebook Cookbook - FlashMidlands
 
Rapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the CloudRapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the Cloud
 
Scaling an API: From Reboots to Redis, how (not) to do it
Scaling an API: From Reboots to Redis, how (not) to do itScaling an API: From Reboots to Redis, how (not) to do it
Scaling an API: From Reboots to Redis, how (not) to do it
 
0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
 0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in... 0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
0 to 100kmh with GraphQL - Rapid API Prototyping using serverless backend in...
 
Treating APIs as Products: How to Apply Product Management Principles to Your...
Treating APIs as Products: How to Apply Product Management Principles to Your...Treating APIs as Products: How to Apply Product Management Principles to Your...
Treating APIs as Products: How to Apply Product Management Principles to Your...
 
SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...
SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...
SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...
 
OpenGovWest Keynote | OpenGov Platform of the Future
OpenGovWest Keynote | OpenGov Platform of the FutureOpenGovWest Keynote | OpenGov Platform of the Future
OpenGovWest Keynote | OpenGov Platform of the Future
 
Scaling an API: From Reboots to Redis, how (not) to do it
Scaling an API: From Reboots to Redis, how (not) to do itScaling an API: From Reboots to Redis, how (not) to do it
Scaling an API: From Reboots to Redis, how (not) to do it
 
0 to 100kmh with GraphQL. Rapid API Prototyping usingserverless backend in t...
0 to 100kmh with GraphQL.  Rapid API Prototyping usingserverless backend in t...0 to 100kmh with GraphQL.  Rapid API Prototyping usingserverless backend in t...
0 to 100kmh with GraphQL. Rapid API Prototyping usingserverless backend in t...
 
Prashant Sridharan
Prashant SridharanPrashant Sridharan
Prashant Sridharan
 
APIStrat 2017: API Design in the Age of Bots, IoT, and Voice
APIStrat 2017: API Design in the Age of Bots, IoT, and VoiceAPIStrat 2017: API Design in the Age of Bots, IoT, and Voice
APIStrat 2017: API Design in the Age of Bots, IoT, and Voice
 
LF_APIStrat17_API Design in the Age of Bots, IoT, and Voice
LF_APIStrat17_API Design in the Age of Bots, IoT, and VoiceLF_APIStrat17_API Design in the Age of Bots, IoT, and Voice
LF_APIStrat17_API Design in the Age of Bots, IoT, and Voice
 
Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop
Serverless Finland Meetup 16.11.2016: Messenger Bot WorkshopServerless Finland Meetup 16.11.2016: Messenger Bot Workshop
Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop
 
European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...
 
Developing share point solutions with the microsoft graph
Developing share point solutions with the microsoft graphDeveloping share point solutions with the microsoft graph
Developing share point solutions with the microsoft graph
 
DEV-017_Azure Functions overview and under the hood
DEV-017_Azure Functions overview and under the hoodDEV-017_Azure Functions overview and under the hood
DEV-017_Azure Functions overview and under the hood
 
Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08
 
Creating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn APICreating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn API
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 

More from Simona Cotin

Tips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstractTips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstract
Simona Cotin
 
Serverless at the end of the Universe
Serverless at the end of the UniverseServerless at the end of the Universe
Serverless at the end of the Universe
Simona Cotin
 
Tech Roadmap
Tech RoadmapTech Roadmap
Tech Roadmap
Simona Cotin
 
Pwa, are we there yet?!
Pwa, are we there yet?!Pwa, are we there yet?!
Pwa, are we there yet?!
Simona Cotin
 
Build Nodejs APIs using Serverless
Build Nodejs APIs  using Serverless Build Nodejs APIs  using Serverless
Build Nodejs APIs using Serverless
Simona Cotin
 
PWAs, are we there yet?!
PWAs, are we there yet?!PWAs, are we there yet?!
PWAs, are we there yet?!
Simona Cotin
 
Doppelganger - ng-conf
Doppelganger - ng-confDoppelganger - ng-conf
Doppelganger - ng-conf
Simona Cotin
 
Build a look alike engine with machine learning and Angular
Build a look alike engine with machine learning and AngularBuild a look alike engine with machine learning and Angular
Build a look alike engine with machine learning and Angular
Simona Cotin
 
Hop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript LondonHop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript London
Simona Cotin
 
Build progressive web apps with Angular
Build progressive web apps with AngularBuild progressive web apps with Angular
Build progressive web apps with Angular
Simona Cotin
 
State management with ngRX
State management with ngRXState management with ngRX
State management with ngRX
Simona Cotin
 
Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)
Simona Cotin
 
Build and Deploy Angular to the Cloud
Build and Deploy Angular to the CloudBuild and Deploy Angular to the Cloud
Build and Deploy Angular to the Cloud
Simona Cotin
 
Serverless adventure tooling
Serverless adventure toolingServerless adventure tooling
Serverless adventure tooling
Simona Cotin
 
Code and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudCode and Deploy Angular to the Cloud
Code and Deploy Angular to the Cloud
Simona Cotin
 
Deploy Angular to the Cloud
Deploy Angular to the CloudDeploy Angular to the Cloud
Deploy Angular to the Cloud
Simona Cotin
 
From Angular to React and back again
From Angular to React and back againFrom Angular to React and back again
From Angular to React and back again
Simona Cotin
 

More from Simona Cotin (18)

Tips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstractTips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstract
 
Serverless at the end of the Universe
Serverless at the end of the UniverseServerless at the end of the Universe
Serverless at the end of the Universe
 
Tech Roadmap
Tech RoadmapTech Roadmap
Tech Roadmap
 
Pwa, are we there yet?!
Pwa, are we there yet?!Pwa, are we there yet?!
Pwa, are we there yet?!
 
Build Nodejs APIs using Serverless
Build Nodejs APIs  using Serverless Build Nodejs APIs  using Serverless
Build Nodejs APIs using Serverless
 
PWAs, are we there yet?!
PWAs, are we there yet?!PWAs, are we there yet?!
PWAs, are we there yet?!
 
Doppelganger - ng-conf
Doppelganger - ng-confDoppelganger - ng-conf
Doppelganger - ng-conf
 
Build a look alike engine with machine learning and Angular
Build a look alike engine with machine learning and AngularBuild a look alike engine with machine learning and Angular
Build a look alike engine with machine learning and Angular
 
Hop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript LondonHop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript London
 
Build progressive web apps with Angular
Build progressive web apps with AngularBuild progressive web apps with Angular
Build progressive web apps with Angular
 
State management with ngRX
State management with ngRXState management with ngRX
State management with ngRX
 
Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)
 
Build and Deploy Angular to the Cloud
Build and Deploy Angular to the CloudBuild and Deploy Angular to the Cloud
Build and Deploy Angular to the Cloud
 
Serverless adventure tooling
Serverless adventure toolingServerless adventure tooling
Serverless adventure tooling
 
Code and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudCode and Deploy Angular to the Cloud
Code and Deploy Angular to the Cloud
 
Deploy Angular to the Cloud
Deploy Angular to the CloudDeploy Angular to the Cloud
Deploy Angular to the Cloud
 
From Angular to React and back again
From Angular to React and back againFrom Angular to React and back again
From Angular to React and back again
 
Music Finder
Music FinderMusic Finder
Music Finder
 

Recently uploaded

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 

Recently uploaded (20)

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 

Build scalable APIs using GraphQL and Serverless

Editor's Notes

  1. The plot is this: Agnes here is looking at two pieces of tech apparently unrelated
  2. Turns out they do have a couple of things in common, they’re both on the hype train. Both GraphQL and Serverless are probably at the peak of their popularity where there’s literally a new community library probably created at this very moment.
  3. Another thing that they have in common is that they’re both extremely appealing to js developers. That’s not to say that they’re not being used by other types of developer, but in particular js developers ted to be excited about graphql because graphql changes the balance and empowers frontend developers to define their data needs without having to rely on the backend team. At the same time, serverless is also of great help to front end developers because it enables us to create small, reusable APIs for our static websites. As we’ve seen in Monica’s presentation, serverless can help us with a couple of things that browser don’t do. Things like storing secrets or
  4. Funnily enough, they both Both emerging at around the same time. Graphql was open sources as a specification in early 2015 and serverless late 2014.
  5. But there still one thing that connects them very strongly and this is what we’re going to spend time on discovering today
  6. You are probably familiar with the n+1 problem:when a request to load one item turns into n+1 requests since the item has n associated items. The term has been mainly described in the context of databases, specifically ORM where we lazy load child records, but it is in fact not confined to that. We can see this phenomenon elsewhere including web apis where we’re composing data from multiple endpoints or resources. This is also known as a Chatty API which is one of the UGLY aspects of REST APIs. A chatty API, is any API that requires consumer to do more than a single call to perform a single, common operation
  7. Why do we care about overfetching & under fetching so much? Well because they introduce a delay in our application. And our users perceive this delay in different ways depending on its length. Anything taking more than a second will prolly make our user context switch and more than 10 seconds abandon the task. And many roundtrips to the server add delay to our application, same as parsing data to filter out fields.
  8. https://hpbn.co/
  9. A single request
  10. Front end and backend teams sit together and define a contract that they’re going to communicate through; an interface between the two teams
  11. A strongly typed definition of all the operations that can be run against the API and their types
  12. A single request
  13. A single request
  14. A single request
  15. A single request
  16. A graphical interactive in-browser GraphQL IDE. Syntax highlighting Intelligent type ahead of fields, arguments, types, and more. Real-time error highlighting and reporting. Automatic query completion. Run and inspect query results.
  17. But the true power of serverless doesn’t come only from the custom code, it comes from how easy we can integrate with multiple datasources and 3rd party apis.
  18. To create a GraphQL backend for our API we use the graphql-js module that exports a core subset of GraphQL functionality for creation of type systems and servers. Our entry point is the graphql function which is capable of parsing, validating and executing a graphql request. It requires a schema and a request string but we can also send query variables and operation names as well as context object
  19. Choose a diff icon; one for cache
  20. Developer productivity
  21. Go build smith!
  22. Two pieces of tech apparently unrelated