SlideShare a Scribd company logo
The Apollo and
GraphQL stack
How everything fits together
Sashko Stubailo
Open Source Lead, Apollo
@stubailo
The goal of the Apollo team and community:
Make building great
applications simpler and more
straightforward, with GraphQL.
Today's apps can be complex:
● Multiple frontends for different platforms
● Multiple backends where data lives
● Need for team coordination across different
languages, technologies, and contexts
In this presentation, I'd like to show you how Apollo
and GraphQL can address these concerns.
Let's set the stage...
React
Android
iOS
Angular
MongoDB
Oracle
Salesforce
PostgreSQL
Microservice
What is GraphQL?
Schema definition Query language Community of tools
Why does GraphQL have so many benefits?
GraphQL organizes the mess of
ad-hoc, underspecified
endpoints.
What is Apollo?
A set of projects designed to leverage GraphQL and work together
to create a great workflow.
Client-side tooling
● Apollo Client
● Apollo iOS
● Apollo Android
● Dev tools
● apollo-codegen
● eslint-plugin-graphql
Server-side tooling
● Apollo Server
● Graphql-tools
○ Schema creation
○ Mocking
○ Stitching
● Apollo Optics
Core benefits from Apollo + GraphQL
1. Easy, fast, and simple development
2. Better maintenance, security, and coordination, especially
between teams
3. Ultimate understanding into how your app data works
Let's look at them one by one.
1. Easy, fast, and simple
development
GraphQL is easier than ever before
Apollo Client
Apollo Server
BackendBackend Backend
React
Existing REST API
● Today, it's just as fast and easy to
build with GraphQL as any other
API technology.
● Huge benefits from a flexible and
declarative approach to data.
● Save time by describing what you
need, not how to get it
A GraphQL API in just a few lines of code
https://launchpad.graphql.com/v7mnw3m03
Easily attach GraphQL data to React
https://codesandbox.io/s/jvlrl98xw3
Adding new features to your app
● This is where GraphQL really shines
● In the UI, just add a new component
● Use the existing fields in a new way, or add a few,
but no need to create an entire new endpoint
● You can build on the work you've already done
● GraphQL is like a component-based API
Migrating an existing app
Spend less time managing data
● Less time worrying about data:
○ Loading state tracking
○ Normalizing and storing data
○ Error handling
○ Async request management
● Less time building new endpoints:
○ Just build the types and fields you need
What's the Apollo team's goal here?
● We want to make sure the best option is also the easiest
● You shouldn't have to decide between simple and complicated
● Huge focus on documentation to make things easy
● Constant improvement: Apollo Client 2.0 is 5x faster and 2x smaller
2. Safety and coordination
Check your API calls ahead of time
+
Use the interaction between GraphQL schema and queries.
Great article by Zach Silviera: https://zach.codes/supercharging-react-app-development/
eslint-plugin-graphql
apollo-codegen
Validating code across the stack
● Validate your frontend code is correct as you write it, using
eslint-plugin-graphql and static type generation with apollo-codegen
● Use a CI setup to check against newly deployed schemas to ensure
your frontend remains valid
● Find breaking changes in the schema with
@entria/graphql-findbreakingchanges. Extra useful when you don't
have the frontend code.
Mocking and Schema Stitching in graphql-tools
https://dev-blog.apollodata.com/graphql-tools-2-0-with-s
chema-stitching-8944064904a5
New workflows
● "GraphQL-First" - develop the schema in parallel with the frontend
using mocking, then connect them
● Using schema stitching, develop different parts of your API in isolation,
and combine with mocking to achieve a hybrid mocked/real API
● Eliminate unneeded blockers across teams
Why GraphQL?
● GraphQL is the only technology that combines a strongly-typed static
schema with a specific query language
● No "select * from users"
● Queries more often live next to UI code, not somewhere in a totally
different place, making it easier to connect UI+queries
3. Understanding your data
Understand the data available
● Same system for building and
validating the API makes it complete
reliable
● Opt-in systems like Swagger, or
manually maintained API docs, are
often incomplete or out of date
Query language
● No way to select * in GraphQL
● You know exactly which fields are
being accessed
● GraphQL is the only tech I know of that
combines a description of the API with
a requirement to ask for specific fields
Track API field usage with Optics
What to do with this information?
● Know which fields to target for deprecation
● Know where to start optimizing
● Move from fields to operations to see what is affected
Fine-grained data
requirements
● Without GraphQL, all similar requests
for data blend together
● It's hard to trace back to UI
performance
● You want to see information per query,
not per endpoint
Optics and devtools
Similar information, across the stack: The future of Apollo
Per-field performance
Easy to know where to fix the problem
● Client side: Avoid fetching fields, split up queries, @defer
● Server side: Make the server faster, do better caching
So what's the next step for GraphQL insights?
Apollo Tracing
Broad server support
● Node
● Ruby
● Scala (Sangria)
● Java
● Elixir
● OCaml
● Even Wordpress →
My hopes for the Apollo Tracing standard
● Performance data built into every GraphQL server
● Visualize data in more places, such as GraphiQL or Apollo
Client Devtools
● Support more kinds of information, for example underlying
backend timing
● Support for schema stitching
Let's work together on it!
Zooming out
The "Apollo Platform"
Apollo Optics
Apollo Client
Apollo Server
Backend Backend Backend
React, etc
Developer tools, code
analysis, and more
Apollo iOS/Android
Swift, Java
The future of the Apollo platform
● Continue to prioritize incremental adoption and integrate
with every technology imaginable
● More tools and features that take advantage of GraphQL
across the whole stack
● Build on more community-driven standards, like Tracing
Core benefits from Apollo + GraphQL
1. Easy, fast, and simple development
2. Better maintenance, security, and coordination, especially
between teams
3. Ultimate understanding into how your app data works
Now we see how using all of the tools together gets us these
benefits.
Important: We can choose which ones we want.
Let's help people
use GraphQL,
together!
Talk to me if you have ideas about
Apollo or GraphQL.
Sashko Stubailo
@stubailo
sashko@apollodata.com
summit.graphql.com
REACTBRAZIL for 25% off

More Related Content

PDF
Raphael Amorim - Scrating React Fiber
PDF
Matheus Marsiglio - Isomorphic React + Redux App
PDF
James Baxley - Statically typing your GraphQL app
PDF
GraphQL over REST at Reactathon 2018
PDF
React, GraphQL и Relay - вполне себе нормальный компонентный подход (nodkz)
PDF
GraphQL IndyJS April 2016
PDF
Serverless GraphQL for Product Developers
PPTX
Making Angular2 lean and Fast
Raphael Amorim - Scrating React Fiber
Matheus Marsiglio - Isomorphic React + Redux App
James Baxley - Statically typing your GraphQL app
GraphQL over REST at Reactathon 2018
React, GraphQL и Relay - вполне себе нормальный компонентный подход (nodkz)
GraphQL IndyJS April 2016
Serverless GraphQL for Product Developers
Making Angular2 lean and Fast

What's hot (20)

PDF
Frontend as a first class citizen
PDF
London React August - GraphQL at The Financial Times - Viktor Charypar
PDF
Scala on Rails #rakutentech
PDF
Beyond The Rails Way
PDF
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
PDF
RxJS - The Basics & The Future
PDF
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
PDF
Redux and context api with react native app introduction, use cases, implemen...
PPTX
Hands on react native
PDF
Reactive Programming
PDF
Real-time GraphQL API with minimum coding and maximum benefit
DOCX
Rails Concept
PDF
Introduction to React Native
PDF
Intro to javascript (4 week)
PPTX
PDF
面向引擎——编写高效率JS
PDF
Serverless Machine Learning Workshop
PDF
New in Spring Framework 5.0: Functional Web Framework
PDF
ServiceWorkerとES6 Modules時代のTypescript開発考察
PDF
The GrapQL ecosystem
Frontend as a first class citizen
London React August - GraphQL at The Financial Times - Viktor Charypar
Scala on Rails #rakutentech
Beyond The Rails Way
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
RxJS - The Basics & The Future
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
Redux and context api with react native app introduction, use cases, implemen...
Hands on react native
Reactive Programming
Real-time GraphQL API with minimum coding and maximum benefit
Rails Concept
Introduction to React Native
Intro to javascript (4 week)
面向引擎——编写高效率JS
Serverless Machine Learning Workshop
New in Spring Framework 5.0: Functional Web Framework
ServiceWorkerとES6 Modules時代のTypescript開発考察
The GrapQL ecosystem
Ad

Viewers also liked (6)

PDF
How to GraphQL
PPTX
マイクロサービスにおけるクエリー言語について
PDF
How to GraphQL: React Apollo
PPTX
Api gatewayの話
PDF
Sibelius Seraphini - Relay Modern
PDF
Rest ful api設計入門
How to GraphQL
マイクロサービスにおけるクエリー言語について
How to GraphQL: React Apollo
Api gatewayの話
Sibelius Seraphini - Relay Modern
Rest ful api設計入門
Ad

Similar to Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together (20)

PDF
React and GraphQL at Stripe
PDF
GraphQL across the stack: How everything fits together
PDF
Fly me to the moon
PPTX
React Flux to GraphQL
PPT
Graphql presentation
PDF
Adding GraphQL to your existing architecture
PDF
Introduction to GraphQL for beginners
PDF
GraphQL: Enabling a new generation of API developer tools
PPTX
Introduction to Graph QL
PPTX
GraphQL API Crafts presentation
PDF
Graphql usage
PDF
GraphQL vs. (the) REST
PDF
Graphql
PDF
LeanIX GraphQL Lessons Learned - CodeTalks 2017
PDF
GraphQL: The Missing Link Between Frontend and Backend Devs
PDF
Getting started with Apollo Client and GraphQL
PDF
GraphQL Bangkok meetup 5.0
PDF
Apollo server II
PDF
Modular GraphQL with Schema Stitching
React and GraphQL at Stripe
GraphQL across the stack: How everything fits together
Fly me to the moon
React Flux to GraphQL
Graphql presentation
Adding GraphQL to your existing architecture
Introduction to GraphQL for beginners
GraphQL: Enabling a new generation of API developer tools
Introduction to Graph QL
GraphQL API Crafts presentation
Graphql usage
GraphQL vs. (the) REST
Graphql
LeanIX GraphQL Lessons Learned - CodeTalks 2017
GraphQL: The Missing Link Between Frontend and Backend Devs
Getting started with Apollo Client and GraphQL
GraphQL Bangkok meetup 5.0
Apollo server II
Modular GraphQL with Schema Stitching

More from React Conf Brasil (6)

PDF
Matheus Lima - O que tem de funcional no React
PDF
Sebastian Ferrari - Why React is good for business
PDF
João Gonçalves - Show do Milhão PWA com React (Caso de Sucesso)
PDF
Marcelo Camargo - Let's dive into Babel: how everything works
PDF
Kete Rufino e Christiano Milfont - Transformando um front-end legado em uma R...
PDF
Fernando Daciuk - The magic world of tests with Jest
Matheus Lima - O que tem de funcional no React
Sebastian Ferrari - Why React is good for business
João Gonçalves - Show do Milhão PWA com React (Caso de Sucesso)
Marcelo Camargo - Let's dive into Babel: how everything works
Kete Rufino e Christiano Milfont - Transformando um front-end legado em uma R...
Fernando Daciuk - The magic world of tests with Jest

Recently uploaded (20)

PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Transform Your Business with a Software ERP System
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
AI in Product Development-omnex systems
PPTX
history of c programming in notes for students .pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Digital Strategies for Manufacturing Companies
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
System and Network Administration Chapter 2
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
ISO 45001 Occupational Health and Safety Management System
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Transform Your Business with a Software ERP System
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
AI in Product Development-omnex systems
history of c programming in notes for students .pptx
Operating system designcfffgfgggggggvggggggggg
VVF-Customer-Presentation2025-Ver1.9.pptx
Design an Analysis of Algorithms II-SECS-1021-03
CHAPTER 2 - PM Management and IT Context
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Understanding Forklifts - TECH EHS Solution
Internet Downloader Manager (IDM) Crack 6.42 Build 41
ManageIQ - Sprint 268 Review - Slide Deck
Digital Strategies for Manufacturing Companies
Upgrade and Innovation Strategies for SAP ERP Customers
System and Network Administration Chapter 2
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Softaken Excel to vCard Converter Software.pdf
ISO 45001 Occupational Health and Safety Management System

Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together

  • 1. The Apollo and GraphQL stack How everything fits together Sashko Stubailo Open Source Lead, Apollo @stubailo
  • 2. The goal of the Apollo team and community: Make building great applications simpler and more straightforward, with GraphQL.
  • 3. Today's apps can be complex: ● Multiple frontends for different platforms ● Multiple backends where data lives ● Need for team coordination across different languages, technologies, and contexts In this presentation, I'd like to show you how Apollo and GraphQL can address these concerns. Let's set the stage... React Android iOS Angular MongoDB Oracle Salesforce PostgreSQL Microservice
  • 4. What is GraphQL? Schema definition Query language Community of tools
  • 5. Why does GraphQL have so many benefits? GraphQL organizes the mess of ad-hoc, underspecified endpoints.
  • 6. What is Apollo? A set of projects designed to leverage GraphQL and work together to create a great workflow. Client-side tooling ● Apollo Client ● Apollo iOS ● Apollo Android ● Dev tools ● apollo-codegen ● eslint-plugin-graphql Server-side tooling ● Apollo Server ● Graphql-tools ○ Schema creation ○ Mocking ○ Stitching ● Apollo Optics
  • 7. Core benefits from Apollo + GraphQL 1. Easy, fast, and simple development 2. Better maintenance, security, and coordination, especially between teams 3. Ultimate understanding into how your app data works Let's look at them one by one.
  • 8. 1. Easy, fast, and simple development
  • 9. GraphQL is easier than ever before Apollo Client Apollo Server BackendBackend Backend React Existing REST API ● Today, it's just as fast and easy to build with GraphQL as any other API technology. ● Huge benefits from a flexible and declarative approach to data. ● Save time by describing what you need, not how to get it
  • 10. A GraphQL API in just a few lines of code https://launchpad.graphql.com/v7mnw3m03
  • 11. Easily attach GraphQL data to React https://codesandbox.io/s/jvlrl98xw3
  • 12. Adding new features to your app ● This is where GraphQL really shines ● In the UI, just add a new component ● Use the existing fields in a new way, or add a few, but no need to create an entire new endpoint ● You can build on the work you've already done ● GraphQL is like a component-based API
  • 14. Spend less time managing data ● Less time worrying about data: ○ Loading state tracking ○ Normalizing and storing data ○ Error handling ○ Async request management ● Less time building new endpoints: ○ Just build the types and fields you need
  • 15. What's the Apollo team's goal here? ● We want to make sure the best option is also the easiest ● You shouldn't have to decide between simple and complicated ● Huge focus on documentation to make things easy ● Constant improvement: Apollo Client 2.0 is 5x faster and 2x smaller
  • 16. 2. Safety and coordination
  • 17. Check your API calls ahead of time + Use the interaction between GraphQL schema and queries.
  • 18. Great article by Zach Silviera: https://zach.codes/supercharging-react-app-development/
  • 21. Validating code across the stack ● Validate your frontend code is correct as you write it, using eslint-plugin-graphql and static type generation with apollo-codegen ● Use a CI setup to check against newly deployed schemas to ensure your frontend remains valid ● Find breaking changes in the schema with @entria/graphql-findbreakingchanges. Extra useful when you don't have the frontend code.
  • 22. Mocking and Schema Stitching in graphql-tools https://dev-blog.apollodata.com/graphql-tools-2-0-with-s chema-stitching-8944064904a5
  • 23. New workflows ● "GraphQL-First" - develop the schema in parallel with the frontend using mocking, then connect them ● Using schema stitching, develop different parts of your API in isolation, and combine with mocking to achieve a hybrid mocked/real API ● Eliminate unneeded blockers across teams
  • 24. Why GraphQL? ● GraphQL is the only technology that combines a strongly-typed static schema with a specific query language ● No "select * from users" ● Queries more often live next to UI code, not somewhere in a totally different place, making it easier to connect UI+queries
  • 26. Understand the data available ● Same system for building and validating the API makes it complete reliable ● Opt-in systems like Swagger, or manually maintained API docs, are often incomplete or out of date
  • 27. Query language ● No way to select * in GraphQL ● You know exactly which fields are being accessed ● GraphQL is the only tech I know of that combines a description of the API with a requirement to ask for specific fields
  • 28. Track API field usage with Optics
  • 29. What to do with this information? ● Know which fields to target for deprecation ● Know where to start optimizing ● Move from fields to operations to see what is affected
  • 30. Fine-grained data requirements ● Without GraphQL, all similar requests for data blend together ● It's hard to trace back to UI performance ● You want to see information per query, not per endpoint
  • 31. Optics and devtools Similar information, across the stack: The future of Apollo
  • 33. Easy to know where to fix the problem ● Client side: Avoid fetching fields, split up queries, @defer ● Server side: Make the server faster, do better caching So what's the next step for GraphQL insights?
  • 35. Broad server support ● Node ● Ruby ● Scala (Sangria) ● Java ● Elixir ● OCaml ● Even Wordpress →
  • 36. My hopes for the Apollo Tracing standard ● Performance data built into every GraphQL server ● Visualize data in more places, such as GraphiQL or Apollo Client Devtools ● Support more kinds of information, for example underlying backend timing ● Support for schema stitching Let's work together on it!
  • 38. The "Apollo Platform" Apollo Optics Apollo Client Apollo Server Backend Backend Backend React, etc Developer tools, code analysis, and more Apollo iOS/Android Swift, Java
  • 39. The future of the Apollo platform ● Continue to prioritize incremental adoption and integrate with every technology imaginable ● More tools and features that take advantage of GraphQL across the whole stack ● Build on more community-driven standards, like Tracing
  • 40. Core benefits from Apollo + GraphQL 1. Easy, fast, and simple development 2. Better maintenance, security, and coordination, especially between teams 3. Ultimate understanding into how your app data works Now we see how using all of the tools together gets us these benefits. Important: We can choose which ones we want.
  • 41. Let's help people use GraphQL, together! Talk to me if you have ideas about Apollo or GraphQL. Sashko Stubailo @stubailo sashko@apollodata.com summit.graphql.com REACTBRAZIL for 25% off