Demand driven Applications with GraphQL

Vinci Rufus
Vinci RufusSr. Director eXperience Technologies at SapientNitro
Demand Driven Applications
with
Vinci Rufus
@areai51
GraphQL
3 Eras of Web based Applications
Monolithic
Server Side
Applications
De-Coupled
Headless
Applications
REST
Demand Driven
Applications
Demand Driven
C O P Y R I G H T S A P I E N T R A Z O R F I S H | C O N F I D E N T I A L 3
What’s the problem with REST
C O P Y R I G H T S A P I E N T R A Z O R F I S H | C O N F I D E N T I A L 4
Over Fetching & Under Fetching
The Power of Positive Thinking
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Curabitur porttitor, purus quis
ultricies rutrum, erat nisl facilisis erat, in
maximus massa libero nec ipsum. Cras eget
leo sed est scelerisque sodales vel eget justo.
Vestibulum ante ipsum primis in faucibus orci
luctus et ultrices posuere cubilia Curae;
Aenean feugiat ante id bibendum imperdiet.
Nunc gravida mollis est, nec tincidunt diam
sodales ultricies. Etiam consequat lobortis
tellus, eu pretium dui lacinia ac. Phasellus
faucibus eros in luctus tempor. Vestibulum vel
ultrices orci. Nullam in augue libero. Nam
dapibus velit nec pellentesque porttitor.
Author - John Doe
5 Comments - View All
C O P Y R I G H T S A P I E N T R A Z O R F I S H | C O N F I D E N T I A L 5
Agree on JSON Contracts
Frontend Developer Backend Developer
API Documentation
C O P Y R I G H T S A P I E N T R A Z O R F I S H | C O N F I D E N T I A L 7
API Rigidity and Bloat
C O P Y R I G H T S A P I E N T R A Z O R F I S H | C O N F I D E N T I A L 8
API versioning
API - V1 API – V2 API – V3
Demand Driven Architecture
David Nolen
Kovas Boguta
WTH is Demand Driven Architecture?
• Driven from the client side app. Clients demand their data
needs.
• Server knows how to parse this demand structure
recursively, fetching all data that is needed.
• Query up. Render down,
FALCOR GraphQL
By
Netflix
2011
By
Facebook
2012
GraphQL is a query language for your API, and a
server-side runtime for executing queries by using
a type system you define for your data.
"The biggest mistake we made as a company was
betting too much on HTML5 instead of native... We
burnt two years.”
Tech Crunch- Disrupt (2012)
Evolution
2012
Internal
Development at
Facebook
2015
Open sourced
2016
Deemed
Production
Ready
Popular brands using Graphql
GraphQL Specifications
facebook.github.io/graphql
Server Implementations
No Language Server Libraries
1 JavaScript GraphQL.js, express-graphql, Apollo Server
2 Ruby Graphql-ruby
3 Python Graphene
4 Scala Sangria
5 Java Graphql-java
6 Clojure Graphql-clj
7 Go Lang Graphql-gp , graphql-relay-go
8 PHP Graphql-php , graphql-relay-php
9 C# / .Net Graphql-dotnet, graphql-net
10 Elixir Absinthe, graphql-elixir
GraphQL is NOT
! a Graph database
! a client side state management library
! Limited to React, Relay or Web
! Limited to JavaScript & Node
Not related to Facebook’s Social Graph
GraphQL Clients
Relay
lokka
React | Angular | iOS | Android | VanillaJS
REST
GraphQL
src: http://slides.com/gerardsans/ngeurope-ng2-loves-graphql#/3/5
REST
GraphQL
GraphQL Topology
GraphQL
PIM OMS Inventory RDBMS
Microservices
Gql Query
Gql Query
Authentication & Authorization
HTTP
Authentication
GraphQL
Business Logic
Authorization
REST
Data Layer
src: https://www.youtube.com/watch?v=6GyubnT38EQ
GraphQL Query
• Single Endpoint.
• No more crazy parsing logic for JSON data
• No Need for Versioning
3 Types of Operations
•Query
Query data by passing an empty object of fields you want data for.
•Mutations
Cary out write operations on the dataset.
•Subscriptions
Real-time (read-only) updates of data.
GraphiQL
demo:
bit.ly/git-stars
code:
bit.ly/git-stars-code
Upcoming Features
@defer
Live Queries
• Vinci Rufus
• @areai51
1 of 30

Recommended

Developing Apps With React Native by
Developing Apps With React NativeDeveloping Apps With React Native
Developing Apps With React NativeAlvaro Viebrantz
1.9K views63 slides
Scala ♥ Graal by Flavio Brasil by
Scala ♥ Graal by Flavio BrasilScala ♥ Graal by Flavio Brasil
Scala ♥ Graal by Flavio Brasilscalaconfjp
315 views123 slides
Everything you want to need to know about GraphQL by
Everything you want to need to know about GraphQL Everything you want to need to know about GraphQL
Everything you want to need to know about GraphQL Smile Gupta
40 views29 slides
GraphQL Will Do To REST What JSON Did To XML by
GraphQL Will Do To REST What JSON Did To XMLGraphQL Will Do To REST What JSON Did To XML
GraphQL Will Do To REST What JSON Did To XMLRoy Derks
181 views35 slides
shanghai by
shanghaishanghai
shanghaiRudiger Peng
322 views28 slides
Characteristics of Sustainable OSS Projects:
 A Theoretical and Empirical Study by
Characteristics of Sustainable OSS Projects:
 A Theoretical and Empirical StudyCharacteristics of Sustainable OSS Projects:
 A Theoretical and Empirical Study
Characteristics of Sustainable OSS Projects:
 A Theoretical and Empirical StudyHideaki Hata
728 views19 slides

More Related Content

Similar to Demand driven Applications with GraphQL

Taking Control of your Data with GraphQL by
Taking Control of your Data with GraphQLTaking Control of your Data with GraphQL
Taking Control of your Data with GraphQLVinci Rufus
713 views30 slides
GraphQL: Enabling a new generation of API developer tools by
GraphQL: Enabling a new generation of API developer toolsGraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsSashko Stubailo
1.8K views35 slides
The API (R) Evolution by
The API (R) EvolutionThe API (R) Evolution
The API (R) EvolutionRakuten Group, Inc.
569 views23 slides
Social Network by
Social NetworkSocial Network
Social NetworkSiliconPrime
1.1K views28 slides
apidays LIVE Australia - Federating API Development at Australia’s largest bu... by
apidays LIVE Australia - Federating API Development at Australia’s largest bu...apidays LIVE Australia - Federating API Development at Australia’s largest bu...
apidays LIVE Australia - Federating API Development at Australia’s largest bu...apidays
1.1K views29 slides
React and GraphQL at Stripe by
React and GraphQL at StripeReact and GraphQL at Stripe
React and GraphQL at StripeSashko Stubailo
4.5K views51 slides

Similar to Demand driven Applications with GraphQL(20)

Taking Control of your Data with GraphQL by Vinci Rufus
Taking Control of your Data with GraphQLTaking Control of your Data with GraphQL
Taking Control of your Data with GraphQL
Vinci Rufus713 views
GraphQL: Enabling a new generation of API developer tools by Sashko Stubailo
GraphQL: Enabling a new generation of API developer toolsGraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer tools
Sashko Stubailo1.8K views
apidays LIVE Australia - Federating API Development at Australia’s largest bu... by apidays
apidays LIVE Australia - Federating API Development at Australia’s largest bu...apidays LIVE Australia - Federating API Development at Australia’s largest bu...
apidays LIVE Australia - Federating API Development at Australia’s largest bu...
apidays1.1K views
Netflix Edge Engineering Open House Presentations - June 9, 2016 by Daniel Jacobson
Netflix Edge Engineering Open House Presentations - June 9, 2016Netflix Edge Engineering Open House Presentations - June 9, 2016
Netflix Edge Engineering Open House Presentations - June 9, 2016
Daniel Jacobson4.8K views
Accelerating API Development With OpenAPI and Serverless by SmartBear
Accelerating API Development With OpenAPI and ServerlessAccelerating API Development With OpenAPI and Serverless
Accelerating API Development With OpenAPI and Serverless
SmartBear272 views
Next Generation Client APIs in Envoy Mobile by C4Media
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
C4Media845 views
Cloud Apps - Running Fully Distributed on Mobile Devices - Dominik Rüttimann by distributed matters
Cloud Apps - Running Fully Distributed on Mobile Devices - Dominik RüttimannCloud Apps - Running Fully Distributed on Mobile Devices - Dominik Rüttimann
Cloud Apps - Running Fully Distributed on Mobile Devices - Dominik Rüttimann
distributed matters1.3K views
10 Famous App Built With React Native by Jai Mehta
10 Famous App Built With React Native10 Famous App Built With React Native
10 Famous App Built With React Native
Jai Mehta136 views
GraphQL Server - Single point of opportunities by Tobias Meixner
GraphQL Server - Single point of opportunitiesGraphQL Server - Single point of opportunities
GraphQL Server - Single point of opportunities
Tobias Meixner380 views
INTERFACE, by apidays - Mapping the Multiprotocol Landscape by apidays
INTERFACE, by apidays - Mapping the Multiprotocol LandscapeINTERFACE, by apidays - Mapping the Multiprotocol Landscape
INTERFACE, by apidays - Mapping the Multiprotocol Landscape
apidays29 views
H2O World - Building a Smarter Application - Tom Kraljevic by Sri Ambati
H2O World - Building a Smarter Application - Tom KraljevicH2O World - Building a Smarter Application - Tom Kraljevic
H2O World - Building a Smarter Application - Tom Kraljevic
Sri Ambati1.9K views
Unboxing web with React Native by AnusheelSingh2
Unboxing web with React NativeUnboxing web with React Native
Unboxing web with React Native
AnusheelSingh2101 views
Real-time GraphQL API with minimum coding and maximum benefit by Mikhail Asavkin
 Real-time GraphQL API with minimum coding and maximum benefit Real-time GraphQL API with minimum coding and maximum benefit
Real-time GraphQL API with minimum coding and maximum benefit
Mikhail Asavkin95 views
LD-R Presentation at ESWC2016 Developers Hackshop by Ali Khalili
LD-R Presentation at ESWC2016 Developers HackshopLD-R Presentation at ESWC2016 Developers Hackshop
LD-R Presentation at ESWC2016 Developers Hackshop
Ali Khalili315 views
Flutter vs react native head to toe comparison [2021 edition] by Katy Slemon
Flutter vs react native  head to toe comparison [2021 edition]Flutter vs react native  head to toe comparison [2021 edition]
Flutter vs react native head to toe comparison [2021 edition]
Katy Slemon79 views
GraphQL: The Missing Link Between Frontend and Backend Devs by Sashko Stubailo
GraphQL: The Missing Link Between Frontend and Backend DevsGraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend Devs
Sashko Stubailo4K views

More from Vinci Rufus

Microfrontends Monoreops & Trunkbased based by
Microfrontends Monoreops & Trunkbased basedMicrofrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased basedVinci Rufus
162 views34 slides
Spas are dead Long Live Microfrontends by
Spas are dead Long Live MicrofrontendsSpas are dead Long Live Microfrontends
Spas are dead Long Live MicrofrontendsVinci Rufus
394 views34 slides
Getting Productive & Performant with Angular by
Getting Productive &  Performant with AngularGetting Productive &  Performant with Angular
Getting Productive & Performant with AngularVinci Rufus
160 views35 slides
Dos & Donts when making Technology choices by
Dos & Donts when making Technology choicesDos & Donts when making Technology choices
Dos & Donts when making Technology choicesVinci Rufus
196 views38 slides
Progressive Web App by
Progressive Web AppProgressive Web App
Progressive Web AppVinci Rufus
469 views23 slides
It's just Angular by
It's just AngularIt's just Angular
It's just AngularVinci Rufus
277 views23 slides

More from Vinci Rufus(13)

Microfrontends Monoreops & Trunkbased based by Vinci Rufus
Microfrontends Monoreops & Trunkbased basedMicrofrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased based
Vinci Rufus162 views
Spas are dead Long Live Microfrontends by Vinci Rufus
Spas are dead Long Live MicrofrontendsSpas are dead Long Live Microfrontends
Spas are dead Long Live Microfrontends
Vinci Rufus394 views
Getting Productive & Performant with Angular by Vinci Rufus
Getting Productive &  Performant with AngularGetting Productive &  Performant with Angular
Getting Productive & Performant with Angular
Vinci Rufus160 views
Dos & Donts when making Technology choices by Vinci Rufus
Dos & Donts when making Technology choicesDos & Donts when making Technology choices
Dos & Donts when making Technology choices
Vinci Rufus196 views
Progressive Web App by Vinci Rufus
Progressive Web AppProgressive Web App
Progressive Web App
Vinci Rufus469 views
It's just Angular by Vinci Rufus
It's just AngularIt's just Angular
It's just Angular
Vinci Rufus277 views
Making Angular2 lean and Fast by Vinci Rufus
Making Angular2 lean and FastMaking Angular2 lean and Fast
Making Angular2 lean and Fast
Vinci Rufus851 views
Re-thinking Performance tuning with HTTP2 by Vinci Rufus
Re-thinking Performance tuning with HTTP2Re-thinking Performance tuning with HTTP2
Re-thinking Performance tuning with HTTP2
Vinci Rufus863 views
Teams Pizza Team vs Jigsaw Puzzle Team by Vinci Rufus
Teams Pizza Team vs Jigsaw Puzzle TeamTeams Pizza Team vs Jigsaw Puzzle Team
Teams Pizza Team vs Jigsaw Puzzle Team
Vinci Rufus1K views
Gesture based Interactions in JavaScript by Vinci Rufus
Gesture based Interactions in JavaScriptGesture based Interactions in JavaScript
Gesture based Interactions in JavaScript
Vinci Rufus392 views
Components Approach to building Web Apps by Vinci Rufus
Components Approach to building Web AppsComponents Approach to building Web Apps
Components Approach to building Web Apps
Vinci Rufus443 views
Angular JS and Magento by Vinci Rufus
Angular JS and MagentoAngular JS and Magento
Angular JS and Magento
Vinci Rufus13K views

Recently uploaded

How to think like a threat actor for Kubernetes.pptx by
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptxLibbySchulze1
5 views33 slides
hamro digital logics.pptx by
hamro digital logics.pptxhamro digital logics.pptx
hamro digital logics.pptxtupeshghimire
9 views36 slides
The Dark Web : Hidden Services by
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden ServicesAnshu Singh
5 views24 slides
Marketing and Community Building in Web3 by
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3Federico Ast
14 views64 slides
IETF 118: Starlink Protocol Performance by
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol PerformanceAPNIC
394 views22 slides
WEB 2.O TOOLS: Empowering education.pptx by
WEB 2.O TOOLS: Empowering education.pptxWEB 2.O TOOLS: Empowering education.pptx
WEB 2.O TOOLS: Empowering education.pptxnarmadhamanohar21
16 views16 slides

Recently uploaded(10)

How to think like a threat actor for Kubernetes.pptx by LibbySchulze1
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptx
LibbySchulze15 views
The Dark Web : Hidden Services by Anshu Singh
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden Services
Anshu Singh5 views
Marketing and Community Building in Web3 by Federico Ast
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3
Federico Ast14 views
IETF 118: Starlink Protocol Performance by APNIC
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol Performance
APNIC394 views
Building trust in our information ecosystem: who do we trust in an emergency by Tina Purnat
Building trust in our information ecosystem: who do we trust in an emergencyBuilding trust in our information ecosystem: who do we trust in an emergency
Building trust in our information ecosystem: who do we trust in an emergency
Tina Purnat109 views
PORTFOLIO 1 (Bret Michael Pepito).pdf by brejess0410
PORTFOLIO 1 (Bret Michael Pepito).pdfPORTFOLIO 1 (Bret Michael Pepito).pdf
PORTFOLIO 1 (Bret Michael Pepito).pdf
brejess04109 views

Demand driven Applications with GraphQL