SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Navigating Your
Transition to GraphQL
A GraphQL-first approach to improving your API
Sashko Stubailo
Tech Lead
Apollo Open Source
Danielle Man
Developer
Apollo Services
Who are we?
• We build and maintain tools for the
GraphQL community
• Excited about the developer experience
enabled by GraphQL
• We went from 0 to GraphQL in two
production apps, talked to many people
who did the same
• We build new apps and features fast
with a GraphQL-first workflow
apollodata.com
github.com/apollostack
Announced and
open-sourced
July 2015
Production ready,
new site
September 2016
Great tools, best
practices, efficient
workflow
The future
Initial design at
Facebook
2012
Looking back…
GraphQL First Development
Post
User
Comment
1. Design API schema
Contract between frontend and
backend with a shared schema
language
2. Build UI and backend
Parallelize with mocking,
develop component-based UIs
with GraphQL containers
3. Run in production
Static queries make loading
predictable, schema tells you
which fields are being used
query Human
Design your schema1
• Database schema is not
always relevant to frontend
developers
• Apps are getting more
complex, not all of your
data is in a database!
D B S C H E M A
• Contract between frontend and
backend
• Declares relationships across
backend data sources
• Incrementally adopt - get the
API you always wanted!
# A comment submitted by a user
type Comment {
# The SQL ID of this comment
id: Int!
# The GitHub user who posted the comment
postedBy: User!
# The text of the comment
content: String!
# The repository which this comment is about
repoName: String!
}
G R A P H Q L S C H E M A
GraphQL requests Backend fetches
Incremental GraphQL Adoption
Data-Layer Redesign
Combine Queries
Simplify Development
Thousands of active users
Galaxy
Client
Elastic Search MongoDB
Amazon Dynamo
DB
C L I E N T
A W S
Galaxy Server
Apollo Client
GraphQL Server
GraphQL from the Beginning
Schema Contract
Parallelize Development
Schema Ownership?
Built from scratch in under 3 months
Optics
B A C K E N D F R O N T E N D
Design for different types of apps
Don’t overfit to specific features Computed fields live on the server
Components ask for exactly
what they need
Generic Backend-for-
Streamline your Workflow
2
B U I L D I N G A P P S
Product Design Engineering
R E A L I T Y
I D E A L
Change database
Rewrite mocked data for all
endpoints using it
Change schema
Update one resolver
P E R - E N D P O I N T P E R - R E S O L V E R
Rest Mocking GraphQL Mocking
Component-
First
Development
1. Painlessly adapted to schema changes
2. Connected front-end to back-end in under 2 days
3. Developed full app in less than 3 months
O U R E X P E R I E N C E
graphql-tools
20 contributors - thanks @DxCx,
@sebastienbarre, @nicolaslopezj
Implement a Node.js GraphQL
schema using the schema
language directly, with support
for all GraphQL features
github.com/apollostack/graphql-tools
graphql-tools
One-step data mocking based on
schema types, customizable as
much as you need.
Instrumental to GraphQL First
development workflow.
github.com/apollostack/graphql-tools
graphql-tools
github.com/apollostack/graphql-tools
Find new workflows
Managing GraphQL Development At Scale - Nick Nance
Develop new features together
Pull request by @itajaja
Load Data with Queries 3
GraphQL clients
Plain fetch
Simple
Predictable
No UI consistency and performance
features
Caching client
Some work required to set up and learn
Easy to update the UI
Manage data in one place
Great dev tools
GET
Incremental adoption for the client
Compatible
Works with your existing client-
side infrastructure
Un-opinionated
Design your own schema, fit
into your existing data model
Component-first
Use GraphQL just one
component at a time, test and
reuse components
Post
User
Comment
Static queries for perf and security
• Use fragments for static composition.
• Queries sent to the server are predictable,
and can be optimized.
• Data requirements of app can be fully
analyzed at build time.
• Better security with persisted queries.
Write your data requirements so that
tooling can separate them from your UI
code
Code generation for result types
Write GraphQL queries
Get static typing based on schema
• Fully featured in Apollo-iOS today
• Community working on TypeScript and
Flow on apollo-codegen
• Work with the easy to learn GraphQL
query language, get all of the benefits of
native integration
github.com/apollostack/apollo-ios
github.com/apollostack/apollo-codegen
Big thanks to @rricard for working on TS
and Flow!
Apollo Client 0.5
dev.apollodata.com
Out today, big thanks to over 100 contributors, especially @jbaxleyiii,
@rricard, @johnthepink, @abhiaiyer91, @kamilkisiela
Apollo Client 0.5
• 100% GraphQL spec support: if you can type it in GraphiQL, it will work.
• Fully featured: Queries, mutations, fragments, optimistic UI, pagination, and more.
• Tooling friendly: Redux dev tools, static analysis, and persisted queries.
• Compatible: Use it with React, React Native, Angular 1, Angular 2, Vue.js, etc.
• Flexible and customizable: Fits into any architecture, customizable caching.
• Futuristic: Subscriptions and custom resolvers, ideas coming from the community.
The best part is — it’s just GraphQL.
GraphQL client conclusions
Use a caching client
Get better UI consistency and avoid loading data you already have.
Incremental adoption and compatibility
Important as you move older apps over to GraphQL, and if your tech choices change.
Static queries
Predictable loading, better dev tools, clearer server insights, eventually move to
persisted queries for performance and security.
Monitor in Production 4
1. Understand endpoint usage
2. Measure endpoint timing
3. Monitor server load
W H A T D O Y O U W A N T ?
……..
Performance
1. Know exactly what fields are used and how
2. Measure field resolver performance
3. Detect breaking schema changes
……..
W H A T C A N Y O U G E T ?
Performance
apollodata.com/optics
Execution traces
Field latencies
Field usage
Optics
GraphQL-First workflow
Design your schema
Implement UI and backend in parallel
Get fine-grained production understanding
Sashko Stubailo
Apollo Open Source
@stubailo
Danielle Man
Apollo Services
@danimman
Huge thanks to the open source community!
Know anyone who wants to work on GraphQL
technology full time? We’re hiring!

Mais conteúdo relacionado

Último

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Último (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Navigating your transition to GraphQL with GraphQL first development

  • 1. Navigating Your Transition to GraphQL A GraphQL-first approach to improving your API Sashko Stubailo Tech Lead Apollo Open Source Danielle Man Developer Apollo Services
  • 2. Who are we? • We build and maintain tools for the GraphQL community • Excited about the developer experience enabled by GraphQL • We went from 0 to GraphQL in two production apps, talked to many people who did the same • We build new apps and features fast with a GraphQL-first workflow apollodata.com github.com/apollostack
  • 3. Announced and open-sourced July 2015 Production ready, new site September 2016 Great tools, best practices, efficient workflow The future Initial design at Facebook 2012 Looking back…
  • 4. GraphQL First Development Post User Comment 1. Design API schema Contract between frontend and backend with a shared schema language 2. Build UI and backend Parallelize with mocking, develop component-based UIs with GraphQL containers 3. Run in production Static queries make loading predictable, schema tells you which fields are being used query Human
  • 6. • Database schema is not always relevant to frontend developers • Apps are getting more complex, not all of your data is in a database! D B S C H E M A
  • 7. • Contract between frontend and backend • Declares relationships across backend data sources • Incrementally adopt - get the API you always wanted! # A comment submitted by a user type Comment { # The SQL ID of this comment id: Int! # The GitHub user who posted the comment postedBy: User! # The text of the comment content: String! # The repository which this comment is about repoName: String! } G R A P H Q L S C H E M A
  • 9. Incremental GraphQL Adoption Data-Layer Redesign Combine Queries Simplify Development Thousands of active users Galaxy
  • 10. Client Elastic Search MongoDB Amazon Dynamo DB C L I E N T A W S Galaxy Server Apollo Client GraphQL Server
  • 11. GraphQL from the Beginning Schema Contract Parallelize Development Schema Ownership? Built from scratch in under 3 months Optics
  • 12. B A C K E N D F R O N T E N D Design for different types of apps Don’t overfit to specific features Computed fields live on the server Components ask for exactly what they need Generic Backend-for-
  • 14. B U I L D I N G A P P S Product Design Engineering
  • 15. R E A L I T Y
  • 16. I D E A L
  • 17. Change database Rewrite mocked data for all endpoints using it Change schema Update one resolver P E R - E N D P O I N T P E R - R E S O L V E R Rest Mocking GraphQL Mocking
  • 19.
  • 20. 1. Painlessly adapted to schema changes 2. Connected front-end to back-end in under 2 days 3. Developed full app in less than 3 months O U R E X P E R I E N C E
  • 21. graphql-tools 20 contributors - thanks @DxCx, @sebastienbarre, @nicolaslopezj Implement a Node.js GraphQL schema using the schema language directly, with support for all GraphQL features github.com/apollostack/graphql-tools
  • 22. graphql-tools One-step data mocking based on schema types, customizable as much as you need. Instrumental to GraphQL First development workflow. github.com/apollostack/graphql-tools
  • 23. graphql-tools github.com/apollostack/graphql-tools Find new workflows Managing GraphQL Development At Scale - Nick Nance Develop new features together Pull request by @itajaja
  • 24. Load Data with Queries 3
  • 25. GraphQL clients Plain fetch Simple Predictable No UI consistency and performance features Caching client Some work required to set up and learn Easy to update the UI Manage data in one place Great dev tools GET
  • 26. Incremental adoption for the client Compatible Works with your existing client- side infrastructure Un-opinionated Design your own schema, fit into your existing data model Component-first Use GraphQL just one component at a time, test and reuse components Post User Comment
  • 27. Static queries for perf and security • Use fragments for static composition. • Queries sent to the server are predictable, and can be optimized. • Data requirements of app can be fully analyzed at build time. • Better security with persisted queries. Write your data requirements so that tooling can separate them from your UI code
  • 28. Code generation for result types Write GraphQL queries Get static typing based on schema • Fully featured in Apollo-iOS today • Community working on TypeScript and Flow on apollo-codegen • Work with the easy to learn GraphQL query language, get all of the benefits of native integration github.com/apollostack/apollo-ios github.com/apollostack/apollo-codegen Big thanks to @rricard for working on TS and Flow!
  • 29. Apollo Client 0.5 dev.apollodata.com Out today, big thanks to over 100 contributors, especially @jbaxleyiii, @rricard, @johnthepink, @abhiaiyer91, @kamilkisiela
  • 30. Apollo Client 0.5 • 100% GraphQL spec support: if you can type it in GraphiQL, it will work. • Fully featured: Queries, mutations, fragments, optimistic UI, pagination, and more. • Tooling friendly: Redux dev tools, static analysis, and persisted queries. • Compatible: Use it with React, React Native, Angular 1, Angular 2, Vue.js, etc. • Flexible and customizable: Fits into any architecture, customizable caching. • Futuristic: Subscriptions and custom resolvers, ideas coming from the community. The best part is — it’s just GraphQL.
  • 31. GraphQL client conclusions Use a caching client Get better UI consistency and avoid loading data you already have. Incremental adoption and compatibility Important as you move older apps over to GraphQL, and if your tech choices change. Static queries Predictable loading, better dev tools, clearer server insights, eventually move to persisted queries for performance and security.
  • 33. 1. Understand endpoint usage 2. Measure endpoint timing 3. Monitor server load W H A T D O Y O U W A N T ? …….. Performance
  • 34. 1. Know exactly what fields are used and how 2. Measure field resolver performance 3. Detect breaking schema changes …….. W H A T C A N Y O U G E T ? Performance
  • 35.
  • 36.
  • 38. GraphQL-First workflow Design your schema Implement UI and backend in parallel Get fine-grained production understanding
  • 39. Sashko Stubailo Apollo Open Source @stubailo Danielle Man Apollo Services @danimman Huge thanks to the open source community! Know anyone who wants to work on GraphQL technology full time? We’re hiring!