SlideShare a Scribd company logo
Scale Your
GraphQL
Application with
Dgraph
Karthic Rao, Developer Advocate at Dgraph Labs
@hackintoshrao
Google Search: Karthic Rao
What to
expect?
- ABOUT DGRAPH
- GRAPHQL BASICS
- GRAPHQL AND GRAPHS
- GRAPHS ALL THE WAY
DEMO
- SETTING UP
- THE ~GRAPHQL INTERFACE
- QUERY/MUTATION WITH
~GRAPHQL
Fastest, Most
scalable GraphDB
on this planet 
WITH A GRAPHQL+- QUERY INTERFACE
Dgraph marches ahead
2015, DECEMBER
v0.1
2017, DECEMBER
v1.0, 3M$ Funding
2019, MAY
Series A, 11.5M$ and Rocking
We are bunch of fun loving people with teams in
San Francisco and Bengaluru
GraphQL basics
QUERY LANGAUGE
FOR API'S
SCHEMA FIRST
DESIGN
QUERY FROM FRONT
END
Schema defines and
controls the possible
queries
Call the functions defined in
Schema in your queries
from the frontned
Query language for API's? I
know about query language
for databases!
DEFINE OBJECTS,  THEN QUERIES AND MUTATIONS ON THEM. YOU ARE ALMOST THERE! 
One endpoint
TO CONQUER ALL
BUT!
LET'S SEE...........
Why is there a
"Graph" in
GraphQL!?
THE IGNORED STORY
FOLLOWS
FOLLOWS
M
EN
TIO
N
S
PO
STS
USING
TAGS
CONTAINS
RETWEETS
User
Tweet
SourceLink
Hashtag
User
Tweet
GraphQL
operates
on the
"App data
graph"
THERE IS A GRAPH
STORY BEHIND
GRAPHQL
When you write a mobile or a web
app you operate on set of objects
which are connected through
relationships at some capacity,
that's an App Data Graph. And
GraphQL lets you not just represent
App Data graph, but also to
traverse through them.
FOLLOWS
FOLLOWS
M
EN
TIO
N
S
PO
STS
USING
TAGS
CONTAINS
RETWEETS
User
Tweet
SourceLink
Hashtag
User
Tweet
GraphQL shema defines the graph and the query helps
you traverse them
STEP 1
Let GraphQL schema
represent your app data
graph
STEP 2
Traverse through the Graph
using queries, modify graph
using mutation
STEP 3
Obtain a sub-tree of the
graph as a result of your
GraphQL query
From whiteboard model -> app model -> schema model
-> client query -> All in graphs -> But..!
STEP 1
Define you app graph on
white paper
STEP 2
Define schema and traverse
through the graphs to fetch
data using queries
STEP 3
Obtain a sub-tree of the
graph as a result of your
GraphQL query
GraphQL is
just a
spec, a
contract
IT DOESN'T DICTATE
THE IMPLEMENTATION
The implementation
onus is on the GraphQL
API server's resolvers.
The query could be
resolved by any
database or a
microservcie
Every nested
query is a
graph
traversal or a
table join from
your database
No Join, No traversal. Anything works. Join / One Traversal. GraphDB slightly
excel.
Join of Join/ Traversal Depth 2.
GraphDB excels
Join of Join of Join/ Traversal Depth
3. GraphDB clearly wins.
When a graph
query can be
traversed like
a graph,
WHY COMPLICATE THINGS!? THE
ASYMPTOTIC COMPLEXITY OF
JOINS IS ALSO A FUNCTION OF
THE SIZE OF YOUR TABLES
Every database has its
use cases and strengths.
Graph databases are
specialized in storing the
connected data with
relationships as nodes
and edges and excel in
querying through
relationship traversals. If
your application can be
visualized as a graph,
welcome to the world
without joins!Just
traverse through
relationships without
complexities
The other way around is true too, if you are using
GraphQL, your application can be visualized as a
graph.
WELCOME TO DGRAPH
But what if your
graphs also
need scale,
speed,
resiliency?
THOUGHT OF THE DAY
The story
of
GraphQL+-
interface
GraphQL is the only graph QL to allow retrieving a
sub-graph from a larger dataset. This, along with
the simplicity of query expression, is what led us to
use GraphQL as the native query language for
Dgraph.
However, the journey has not been completely
smooth. GraphQL is not designed to be a database
query language. To make it work like one required
quite a few modifications to the spec. Concepts like
variables and query blocks are new ideas
introduced to allow more complex database
queries. Other concepts like filters and directives
are built upon existing spec ideas to provide richer
functionality. And lastly, unions and inheritance is
dropped entirely as concepts not relevant to a
database, but rather only to an application layer. 
This is what resulted in GraphQL+-, the only
GraphQL based database query language.
GraphQL+-
Guide
Click on the play button for a tour
through the GraphQL+- interface
Demo time!
Dgraph.io/about for rest of the awesome team
MANISH JAIN
Founder and CEO
@manishrjain
FRANCESC CAMPOY
VP of Product
@francesc
KARTHIC RAO
Developer Advocate
@hackintoshrao
DGRAPH.IO/CAREERS
We heard you! We are working
towards being fully GraphQL
compatible. Stay tuned @dgraphlabs 
Thank you
WWW.DGRAPH.IO
@DGRAPHLABS
@HACKINTOSHRAO
Additional References
INSTAL, GET STARTED
docs.dgraph.io/get-started/
GITHUB
github.com/dgraph-io/
DGRAPH TOUR
https://tour.dgraph.io
TRY IT OUT
play.dgraph.io

More Related Content

What's hot

Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product Developers
Sashko Stubailo
 
How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQL
Tomasz Bak
 
Into to GraphQL
Into to GraphQLInto to GraphQL
Into to GraphQL
shobot
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
bobo52310
 
GraphQL & Relay
GraphQL & RelayGraphQL & Relay
GraphQL & Relay
Viacheslav Slinko
 
GraphQL
GraphQLGraphQL
GraphQL London January 2018: Graphql tooling
GraphQL London January 2018: Graphql toolingGraphQL London January 2018: Graphql tooling
GraphQL London January 2018: Graphql tooling
Søren Bramer Schmidt
 
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4jGraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
Neo4j
 
Intro to GraphQL
 Intro to GraphQL Intro to GraphQL
Intro to GraphQL
Rakuten Group, Inc.
 
React Flux to GraphQL
React Flux to GraphQLReact Flux to GraphQL
React Flux to GraphQL
Turadg Aleahmad
 
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsGraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
Nicola Molinari
 
Getting started with GraphQL
Getting started with GraphQLGetting started with GraphQL
Getting started with GraphQL
Thiago Colares
 
GraphQL Europe Recap
GraphQL Europe RecapGraphQL Europe Recap
GraphQL Europe Recap
Philipp Sporrer
 
Apollo Server
Apollo ServerApollo Server
Apollo Server
NodeXperts
 
GraphQL Search
GraphQL SearchGraphQL Search
GraphQL Search
Artem Shtatnov
 
Standing out as a new grad candidate
Standing out as a new grad candidateStanding out as a new grad candidate
Standing out as a new grad candidate
Sashko Stubailo
 
Wrapping and securing REST APIs with GraphQL
Wrapping and securing REST APIs with GraphQLWrapping and securing REST APIs with GraphQL
Wrapping and securing REST APIs with GraphQL
Roy Derks
 
AWS Finland September Meetup - Using Amazon Neptune to build Fashion Knowledg...
AWS Finland September Meetup - Using Amazon Neptune to build Fashion Knowledg...AWS Finland September Meetup - Using Amazon Neptune to build Fashion Knowledg...
AWS Finland September Meetup - Using Amazon Neptune to build Fashion Knowledg...
Uri Savelchev
 
Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0
Otávio Santana
 
Full Stack Graph in the Cloud
Full Stack Graph in the CloudFull Stack Graph in the Cloud
Full Stack Graph in the Cloud
Neo4j
 

What's hot (20)

Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product Developers
 
How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQL
 
Into to GraphQL
Into to GraphQLInto to GraphQL
Into to GraphQL
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
 
GraphQL & Relay
GraphQL & RelayGraphQL & Relay
GraphQL & Relay
 
GraphQL
GraphQLGraphQL
GraphQL
 
GraphQL London January 2018: Graphql tooling
GraphQL London January 2018: Graphql toolingGraphQL London January 2018: Graphql tooling
GraphQL London January 2018: Graphql tooling
 
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4jGraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
 
Intro to GraphQL
 Intro to GraphQL Intro to GraphQL
Intro to GraphQL
 
React Flux to GraphQL
React Flux to GraphQLReact Flux to GraphQL
React Flux to GraphQL
 
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsGraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
 
Getting started with GraphQL
Getting started with GraphQLGetting started with GraphQL
Getting started with GraphQL
 
GraphQL Europe Recap
GraphQL Europe RecapGraphQL Europe Recap
GraphQL Europe Recap
 
Apollo Server
Apollo ServerApollo Server
Apollo Server
 
GraphQL Search
GraphQL SearchGraphQL Search
GraphQL Search
 
Standing out as a new grad candidate
Standing out as a new grad candidateStanding out as a new grad candidate
Standing out as a new grad candidate
 
Wrapping and securing REST APIs with GraphQL
Wrapping and securing REST APIs with GraphQLWrapping and securing REST APIs with GraphQL
Wrapping and securing REST APIs with GraphQL
 
AWS Finland September Meetup - Using Amazon Neptune to build Fashion Knowledg...
AWS Finland September Meetup - Using Amazon Neptune to build Fashion Knowledg...AWS Finland September Meetup - Using Amazon Neptune to build Fashion Knowledg...
AWS Finland September Meetup - Using Amazon Neptune to build Fashion Knowledg...
 
Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0
 
Full Stack Graph in the Cloud
Full Stack Graph in the CloudFull Stack Graph in the Cloud
Full Stack Graph in the Cloud
 

Similar to Scaling your GraphQL applications with Dgraph

How easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceHow easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performance
Red Hat
 
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Raoapidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
apidays
 
Scaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterScaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships Matter
Joel Bowen
 
Graphql
GraphqlGraphql
Graphql
Niv Ben David
 
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
Rob Crowley
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHP
Andrew Rota
 
GraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherGraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits together
Sashko Stubailo
 
Graphql for Frontend Developers Simplifying Data Fetching.docx
Graphql for Frontend Developers Simplifying Data Fetching.docxGraphql for Frontend Developers Simplifying Data Fetching.docx
Graphql for Frontend Developers Simplifying Data Fetching.docx
ssuser5583681
 
GraphQL-ify your APIs - Devoxx UK 2021
 GraphQL-ify your APIs - Devoxx UK 2021 GraphQL-ify your APIs - Devoxx UK 2021
GraphQL-ify your APIs - Devoxx UK 2021
Soham Dasgupta
 
GraphQL.pptx
GraphQL.pptxGraphQL.pptx
GraphQL.pptx
Preston Flossy
 
GraphQL.pptx
GraphQL.pptxGraphQL.pptx
GraphQL.pptx
Preston Flossy
 
Create GraphQL server with apolloJS
Create GraphQL server with apolloJSCreate GraphQL server with apolloJS
Create GraphQL server with apolloJS
Jonathan Jalouzot
 
The GraphQL Ecosystem in 2018
The GraphQL Ecosystem in 2018The GraphQL Ecosystem in 2018
The GraphQL Ecosystem in 2018
Nikolas Burk
 
GraphQL and its schema as a universal layer for database access
GraphQL and its schema as a universal layer for database accessGraphQL and its schema as a universal layer for database access
GraphQL and its schema as a universal layer for database access
Connected Data World
 
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything togetherSashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
React Conf Brasil
 
GraphQL research summary
GraphQL research summaryGraphQL research summary
GraphQL research summary
Objectivity
 
GraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdfGraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdf
Knoldus Inc.
 
GraphQL and Relay Modern
GraphQL and Relay ModernGraphQL and Relay Modern
GraphQL and Relay Modern
Carmel JavaScript Roundabout
 
GraphQL And Relay Modern
GraphQL And Relay ModernGraphQL And Relay Modern
GraphQL And Relay Modern
Brad Pillow
 
GraphQL And Relay Modern
GraphQL And Relay ModernGraphQL And Relay Modern
GraphQL And Relay Modern
Brad Pillow
 

Similar to Scaling your GraphQL applications with Dgraph (20)

How easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceHow easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performance
 
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Raoapidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
 
Scaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterScaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships Matter
 
Graphql
GraphqlGraphql
Graphql
 
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHP
 
GraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherGraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits together
 
Graphql for Frontend Developers Simplifying Data Fetching.docx
Graphql for Frontend Developers Simplifying Data Fetching.docxGraphql for Frontend Developers Simplifying Data Fetching.docx
Graphql for Frontend Developers Simplifying Data Fetching.docx
 
GraphQL-ify your APIs - Devoxx UK 2021
 GraphQL-ify your APIs - Devoxx UK 2021 GraphQL-ify your APIs - Devoxx UK 2021
GraphQL-ify your APIs - Devoxx UK 2021
 
GraphQL.pptx
GraphQL.pptxGraphQL.pptx
GraphQL.pptx
 
GraphQL.pptx
GraphQL.pptxGraphQL.pptx
GraphQL.pptx
 
Create GraphQL server with apolloJS
Create GraphQL server with apolloJSCreate GraphQL server with apolloJS
Create GraphQL server with apolloJS
 
The GraphQL Ecosystem in 2018
The GraphQL Ecosystem in 2018The GraphQL Ecosystem in 2018
The GraphQL Ecosystem in 2018
 
GraphQL and its schema as a universal layer for database access
GraphQL and its schema as a universal layer for database accessGraphQL and its schema as a universal layer for database access
GraphQL and its schema as a universal layer for database access
 
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything togetherSashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
 
GraphQL research summary
GraphQL research summaryGraphQL research summary
GraphQL research summary
 
GraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdfGraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdf
 
GraphQL and Relay Modern
GraphQL and Relay ModernGraphQL and Relay Modern
GraphQL and Relay Modern
 
GraphQL And Relay Modern
GraphQL And Relay ModernGraphQL And Relay Modern
GraphQL And Relay Modern
 
GraphQL And Relay Modern
GraphQL And Relay ModernGraphQL And Relay Modern
GraphQL And Relay Modern
 

More from Karthic Rao

Childexittest
ChildexittestChildexittest
Childexittest
Karthic Rao
 
Childexittest
ChildexittestChildexittest
Childexittest
Karthic Rao
 
Fileinc
FileincFileinc
Fileinc
Karthic Rao
 
Forkexpe
ForkexpeForkexpe
Forkexpe
Karthic Rao
 
Countrytime.c
Countrytime.cCountrytime.c
Countrytime.c
Karthic Rao
 
Timesleep
TimesleepTimesleep
Timesleep
Karthic Rao
 
Time2.c
Time2.cTime2.c
Time2.c
Karthic Rao
 
Fork.c
Fork.cFork.c
Fork.c
Karthic Rao
 
2 buffer overflows
2 buffer overflows2 buffer overflows
2 buffer overflows
Karthic Rao
 

More from Karthic Rao (10)

Childexittest
ChildexittestChildexittest
Childexittest
 
Childexittest
ChildexittestChildexittest
Childexittest
 
Fileinc
FileincFileinc
Fileinc
 
Forkexpe
ForkexpeForkexpe
Forkexpe
 
Usrinfogetpwuid
UsrinfogetpwuidUsrinfogetpwuid
Usrinfogetpwuid
 
Countrytime.c
Countrytime.cCountrytime.c
Countrytime.c
 
Timesleep
TimesleepTimesleep
Timesleep
 
Time2.c
Time2.cTime2.c
Time2.c
 
Fork.c
Fork.cFork.c
Fork.c
 
2 buffer overflows
2 buffer overflows2 buffer overflows
2 buffer overflows
 

Recently uploaded

Natural Language Processing (NLP), RAG and its applications .pptx
Natural Language Processing (NLP), RAG and its applications .pptxNatural Language Processing (NLP), RAG and its applications .pptx
Natural Language Processing (NLP), RAG and its applications .pptx
fkyes25
 
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
nyfuhyz
 
一比一原版(Harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(Harvard毕业证书)哈佛大学毕业证如何办理一比一原版(Harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(Harvard毕业证书)哈佛大学毕业证如何办理
zsjl4mimo
 
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data LakeViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
Walaa Eldin Moustafa
 
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
slg6lamcq
 
University of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma TranscriptUniversity of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma Transcript
soxrziqu
 
一比一原版(Chester毕业证书)切斯特大学毕业证如何办理
一比一原版(Chester毕业证书)切斯特大学毕业证如何办理一比一原版(Chester毕业证书)切斯特大学毕业证如何办理
一比一原版(Chester毕业证书)切斯特大学毕业证如何办理
74nqk8xf
 
Everything you wanted to know about LIHTC
Everything you wanted to know about LIHTCEverything you wanted to know about LIHTC
Everything you wanted to know about LIHTC
Roger Valdez
 
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
g4dpvqap0
 
Learn SQL from basic queries to Advance queries
Learn SQL from basic queries to Advance queriesLearn SQL from basic queries to Advance queries
Learn SQL from basic queries to Advance queries
manishkhaire30
 
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
74nqk8xf
 
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
mbawufebxi
 
My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.
rwarrenll
 
State of Artificial intelligence Report 2023
State of Artificial intelligence Report 2023State of Artificial intelligence Report 2023
State of Artificial intelligence Report 2023
kuntobimo2016
 
一比一原版(UCSF文凭证书)旧金山分校毕业证如何办理
一比一原版(UCSF文凭证书)旧金山分校毕业证如何办理一比一原版(UCSF文凭证书)旧金山分校毕业证如何办理
一比一原版(UCSF文凭证书)旧金山分校毕业证如何办理
nuttdpt
 
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
apvysm8
 
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
slg6lamcq
 
Challenges of Nation Building-1.pptx with more important
Challenges of Nation Building-1.pptx with more importantChallenges of Nation Building-1.pptx with more important
Challenges of Nation Building-1.pptx with more important
Sm321
 
End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024
Lars Albertsson
 
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Aggregage
 

Recently uploaded (20)

Natural Language Processing (NLP), RAG and its applications .pptx
Natural Language Processing (NLP), RAG and its applications .pptxNatural Language Processing (NLP), RAG and its applications .pptx
Natural Language Processing (NLP), RAG and its applications .pptx
 
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
 
一比一原版(Harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(Harvard毕业证书)哈佛大学毕业证如何办理一比一原版(Harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(Harvard毕业证书)哈佛大学毕业证如何办理
 
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data LakeViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
 
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
 
University of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma TranscriptUniversity of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma Transcript
 
一比一原版(Chester毕业证书)切斯特大学毕业证如何办理
一比一原版(Chester毕业证书)切斯特大学毕业证如何办理一比一原版(Chester毕业证书)切斯特大学毕业证如何办理
一比一原版(Chester毕业证书)切斯特大学毕业证如何办理
 
Everything you wanted to know about LIHTC
Everything you wanted to know about LIHTCEverything you wanted to know about LIHTC
Everything you wanted to know about LIHTC
 
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
 
Learn SQL from basic queries to Advance queries
Learn SQL from basic queries to Advance queriesLearn SQL from basic queries to Advance queries
Learn SQL from basic queries to Advance queries
 
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
 
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
 
My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.
 
State of Artificial intelligence Report 2023
State of Artificial intelligence Report 2023State of Artificial intelligence Report 2023
State of Artificial intelligence Report 2023
 
一比一原版(UCSF文凭证书)旧金山分校毕业证如何办理
一比一原版(UCSF文凭证书)旧金山分校毕业证如何办理一比一原版(UCSF文凭证书)旧金山分校毕业证如何办理
一比一原版(UCSF文凭证书)旧金山分校毕业证如何办理
 
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
 
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
 
Challenges of Nation Building-1.pptx with more important
Challenges of Nation Building-1.pptx with more importantChallenges of Nation Building-1.pptx with more important
Challenges of Nation Building-1.pptx with more important
 
End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024
 
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
 

Scaling your GraphQL applications with Dgraph

  • 1. Scale Your GraphQL Application with Dgraph Karthic Rao, Developer Advocate at Dgraph Labs @hackintoshrao Google Search: Karthic Rao
  • 2. What to expect? - ABOUT DGRAPH - GRAPHQL BASICS - GRAPHQL AND GRAPHS - GRAPHS ALL THE WAY DEMO - SETTING UP - THE ~GRAPHQL INTERFACE - QUERY/MUTATION WITH ~GRAPHQL
  • 3. Fastest, Most scalable GraphDB on this planet  WITH A GRAPHQL+- QUERY INTERFACE
  • 4. Dgraph marches ahead 2015, DECEMBER v0.1 2017, DECEMBER v1.0, 3M$ Funding 2019, MAY Series A, 11.5M$ and Rocking
  • 5. We are bunch of fun loving people with teams in San Francisco and Bengaluru
  • 6. GraphQL basics QUERY LANGAUGE FOR API'S SCHEMA FIRST DESIGN QUERY FROM FRONT END Schema defines and controls the possible queries Call the functions defined in Schema in your queries from the frontned Query language for API's? I know about query language for databases!
  • 7. DEFINE OBJECTS,  THEN QUERIES AND MUTATIONS ON THEM. YOU ARE ALMOST THERE! 
  • 9. LET'S SEE........... Why is there a "Graph" in GraphQL!? THE IGNORED STORY FOLLOWS FOLLOWS M EN TIO N S PO STS USING TAGS CONTAINS RETWEETS User Tweet SourceLink Hashtag User Tweet
  • 10. GraphQL operates on the "App data graph" THERE IS A GRAPH STORY BEHIND GRAPHQL When you write a mobile or a web app you operate on set of objects which are connected through relationships at some capacity, that's an App Data Graph. And GraphQL lets you not just represent App Data graph, but also to traverse through them. FOLLOWS FOLLOWS M EN TIO N S PO STS USING TAGS CONTAINS RETWEETS User Tweet SourceLink Hashtag User Tweet
  • 11. GraphQL shema defines the graph and the query helps you traverse them STEP 1 Let GraphQL schema represent your app data graph STEP 2 Traverse through the Graph using queries, modify graph using mutation STEP 3 Obtain a sub-tree of the graph as a result of your GraphQL query
  • 12. From whiteboard model -> app model -> schema model -> client query -> All in graphs -> But..! STEP 1 Define you app graph on white paper STEP 2 Define schema and traverse through the graphs to fetch data using queries STEP 3 Obtain a sub-tree of the graph as a result of your GraphQL query
  • 13. GraphQL is just a spec, a contract IT DOESN'T DICTATE THE IMPLEMENTATION The implementation onus is on the GraphQL API server's resolvers. The query could be resolved by any database or a microservcie
  • 14. Every nested query is a graph traversal or a table join from your database
  • 15. No Join, No traversal. Anything works. Join / One Traversal. GraphDB slightly excel. Join of Join/ Traversal Depth 2. GraphDB excels Join of Join of Join/ Traversal Depth 3. GraphDB clearly wins.
  • 16. When a graph query can be traversed like a graph, WHY COMPLICATE THINGS!? THE ASYMPTOTIC COMPLEXITY OF JOINS IS ALSO A FUNCTION OF THE SIZE OF YOUR TABLES Every database has its use cases and strengths. Graph databases are specialized in storing the connected data with relationships as nodes and edges and excel in querying through relationship traversals. If your application can be visualized as a graph, welcome to the world without joins!Just traverse through relationships without complexities
  • 17. The other way around is true too, if you are using GraphQL, your application can be visualized as a graph.
  • 18. WELCOME TO DGRAPH But what if your graphs also need scale, speed, resiliency? THOUGHT OF THE DAY
  • 19. The story of GraphQL+- interface GraphQL is the only graph QL to allow retrieving a sub-graph from a larger dataset. This, along with the simplicity of query expression, is what led us to use GraphQL as the native query language for Dgraph. However, the journey has not been completely smooth. GraphQL is not designed to be a database query language. To make it work like one required quite a few modifications to the spec. Concepts like variables and query blocks are new ideas introduced to allow more complex database queries. Other concepts like filters and directives are built upon existing spec ideas to provide richer functionality. And lastly, unions and inheritance is dropped entirely as concepts not relevant to a database, but rather only to an application layer.  This is what resulted in GraphQL+-, the only GraphQL based database query language.
  • 20. GraphQL+- Guide Click on the play button for a tour through the GraphQL+- interface
  • 22. Dgraph.io/about for rest of the awesome team MANISH JAIN Founder and CEO @manishrjain FRANCESC CAMPOY VP of Product @francesc KARTHIC RAO Developer Advocate @hackintoshrao
  • 24. We heard you! We are working towards being fully GraphQL compatible. Stay tuned @dgraphlabs 
  • 26. Additional References INSTAL, GET STARTED docs.dgraph.io/get-started/ GITHUB github.com/dgraph-io/ DGRAPH TOUR https://tour.dgraph.io TRY IT OUT play.dgraph.io