SlideShare a Scribd company logo
1 of 22
Download to read offline
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Why you should migrate to
GraphQL in 2019
Marcin Gębala
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
About me
■ Python developer @ Mirumee Software
■ Lead developer and open-source community
maintainer @ Saleor e-commerce platform
■ 1 year experience with GraphQL - building a GraphQL
API for Saleor
@maarcingebala
github.com/maarcingebala
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Agenda
■ GraphQL - introduction & core concepts
■ Capabilities of GraphQL ecosystem
■ Problems
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
GraphQL - introduction
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
A data query language and specification
developed internally by Facebook in 2012 before
being publicly open sourced in 2015. It provides
an alternative to REST-based architectures
with the purpose of increasing developer
productivity and minimizing amounts of data
transferred
Source: https://gql.foundation/
GraphQL
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
■ Client defines what data to fetch
■ Queries, mutations, subscriptions
■ POST, single endpoint, single request
■ Strong typing
■ Introspection
GraphQL - core concepts
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
C# / .NET
Clojure
Elixir
Erlang
Go
Groovy
Java
JavaScript
PHP
Python
Scala
Ruby
C# / .NET
Clojurescript
Go
Java / Android
JavaScript
Swift / Objective-C iOS
Python
Server implementations Client implementations
Source: https://graphql.org/code/
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Companies using GraphQL
Source: Geoff Schmidt’s talk from GraphQL Summit 2018 (https://youtu.be/IjJkAL4RWyQ)
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Demo - Github v4 API
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Capabilities of GraphQL ecosystem
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Entire API as a single file
■ Versioning
■ Easy to find usages of
particular types
■ Clear contract between
backend and frontend
schema.graphql
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Flexible resolvers
Field resolvers allow easily implement fetching data from different
sources: memory, disk, network, microservices.
REST API Database
Search
engine
S3
GraphQL
Web Mobile
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Simpler state management
■ API is your application state
■ No Redux or MobX stores
■ apollo-link-state - local state management with
GraphQL
■ React Context API
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Apollo Client
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
■ Apollo GraphQL Extension
for VSCode
■ GraphiQL / Playground
experience in the editor
■ Performance statistics from
Apollo Engine
IDE integrations
Apollo GraphQL plugin running in VSCode
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Generating static types
GraphQL type from
schema definition
Query defined by a frontend
view
Typescript type used in
frontend code
Instantly reflect backend changes in the frontend code.
Support: Swift, Typescript, Flow, Scala
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
■ Tracks API changes,
deprecated fields
■ Performance metrics
■ List of connected clients
Apollo Engine
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
■ Best practices are still emerging
■ Differences between frameworks
■ Caching
Problems
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
Summary
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
■ Modern and battle-tested stack
■ Frontend productivity
■ Backend flexibility
■ Happy developers :)
So what are the benefits of migrating to GraphQL?
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
■ Apollo Tutorial
■ Netflix’s migration case study
■ Shopify’s GraphQL design tutorial
■ Anemic mutations design
Resources
COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE
THANK YOU!
QUESTIONS?

More Related Content

What's hot

Cloud-native Integration in the Oracle Cloud
Cloud-native Integration in the Oracle CloudCloud-native Integration in the Oracle Cloud
Cloud-native Integration in the Oracle CloudSven Bernhardt
 
APIdays Paris 2018 - Accelerate Innovation & Aircraft Production by using API...
APIdays Paris 2018 - Accelerate Innovation & Aircraft Production by using API...APIdays Paris 2018 - Accelerate Innovation & Aircraft Production by using API...
APIdays Paris 2018 - Accelerate Innovation & Aircraft Production by using API...apidays
 
Continuous Integration, Delivery and Deployment in the SAP area
Continuous Integration, Delivery and Deployment in the SAP areaContinuous Integration, Delivery and Deployment in the SAP area
Continuous Integration, Delivery and Deployment in the SAP areaAndreas Gautsch
 
APIdays Paris 2018 - Hack your legacy, from mutualism to Open Source! Chris W...
APIdays Paris 2018 - Hack your legacy, from mutualism to Open Source! Chris W...APIdays Paris 2018 - Hack your legacy, from mutualism to Open Source! Chris W...
APIdays Paris 2018 - Hack your legacy, from mutualism to Open Source! Chris W...apidays
 
Spryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anywaySpryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anywayBernd Alter
 
API design-first and Microservices
API design-first and MicroservicesAPI design-first and Microservices
API design-first and MicroservicesSven Bernhardt
 
How to interconnect digital agendas?
How to interconnect digital agendas?How to interconnect digital agendas?
How to interconnect digital agendas?Yacine Bouallouche
 
WebRTC in WebKitGTK+ and WPE (Web Engines Hackfest 2018)
WebRTC in WebKitGTK+ and WPE (Web Engines Hackfest 2018)WebRTC in WebKitGTK+ and WPE (Web Engines Hackfest 2018)
WebRTC in WebKitGTK+ and WPE (Web Engines Hackfest 2018)Igalia
 
An API-focused approach to Agile Integration
An API-focused approach to Agile IntegrationAn API-focused approach to Agile Integration
An API-focused approach to Agile IntegrationJudy Breedlove
 
Navigating Cloud Adoption: Trends that Challenge and Inspire Designers
Navigating Cloud Adoption:  Trends that Challenge and Inspire DesignersNavigating Cloud Adoption:  Trends that Challenge and Inspire Designers
Navigating Cloud Adoption: Trends that Challenge and Inspire DesignersJudy Breedlove
 
Cloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in KubernetesCloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in KubernetesWSO2
 
Webinar: Behind the Scenes on Guided Analytics
Webinar: Behind the Scenes on Guided AnalyticsWebinar: Behind the Scenes on Guided Analytics
Webinar: Behind the Scenes on Guided AnalyticsKNIMESlides
 
SOA, OTD, and Web 2.0 = Collaboration
SOA, OTD, and Web 2.0 = CollaborationSOA, OTD, and Web 2.0 = Collaboration
SOA, OTD, and Web 2.0 = Collaborationjstogdill
 
Cloud-Native Microservices using Helidon
Cloud-Native Microservices using HelidonCloud-Native Microservices using Helidon
Cloud-Native Microservices using HelidonSven Bernhardt
 
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetesSpryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetesBernd Alter
 
Agile integration activation: get hands on with ap-is
Agile integration activation: get hands on with ap-isAgile integration activation: get hands on with ap-is
Agile integration activation: get hands on with ap-isJudy Breedlove
 
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...mfrancis
 
The 3 pillars of agile integration: Container, Connector and API
The 3 pillars of agile integration:  Container, Connector and APIThe 3 pillars of agile integration:  Container, Connector and API
The 3 pillars of agile integration: Container, Connector and APIJudy Breedlove
 
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 candidateSashko Stubailo
 

What's hot (20)

Cloud-native Integration in the Oracle Cloud
Cloud-native Integration in the Oracle CloudCloud-native Integration in the Oracle Cloud
Cloud-native Integration in the Oracle Cloud
 
APIdays Paris 2018 - Accelerate Innovation & Aircraft Production by using API...
APIdays Paris 2018 - Accelerate Innovation & Aircraft Production by using API...APIdays Paris 2018 - Accelerate Innovation & Aircraft Production by using API...
APIdays Paris 2018 - Accelerate Innovation & Aircraft Production by using API...
 
Continuous Integration, Delivery and Deployment in the SAP area
Continuous Integration, Delivery and Deployment in the SAP areaContinuous Integration, Delivery and Deployment in the SAP area
Continuous Integration, Delivery and Deployment in the SAP area
 
APIdays Paris 2018 - Hack your legacy, from mutualism to Open Source! Chris W...
APIdays Paris 2018 - Hack your legacy, from mutualism to Open Source! Chris W...APIdays Paris 2018 - Hack your legacy, from mutualism to Open Source! Chris W...
APIdays Paris 2018 - Hack your legacy, from mutualism to Open Source! Chris W...
 
Spryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anywaySpryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anyway
 
API design-first and Microservices
API design-first and MicroservicesAPI design-first and Microservices
API design-first and Microservices
 
Trimble, TILOS & The Future
Trimble, TILOS & The FutureTrimble, TILOS & The Future
Trimble, TILOS & The Future
 
How to interconnect digital agendas?
How to interconnect digital agendas?How to interconnect digital agendas?
How to interconnect digital agendas?
 
WebRTC in WebKitGTK+ and WPE (Web Engines Hackfest 2018)
WebRTC in WebKitGTK+ and WPE (Web Engines Hackfest 2018)WebRTC in WebKitGTK+ and WPE (Web Engines Hackfest 2018)
WebRTC in WebKitGTK+ and WPE (Web Engines Hackfest 2018)
 
An API-focused approach to Agile Integration
An API-focused approach to Agile IntegrationAn API-focused approach to Agile Integration
An API-focused approach to Agile Integration
 
Navigating Cloud Adoption: Trends that Challenge and Inspire Designers
Navigating Cloud Adoption:  Trends that Challenge and Inspire DesignersNavigating Cloud Adoption:  Trends that Challenge and Inspire Designers
Navigating Cloud Adoption: Trends that Challenge and Inspire Designers
 
Cloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in KubernetesCloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in Kubernetes
 
Webinar: Behind the Scenes on Guided Analytics
Webinar: Behind the Scenes on Guided AnalyticsWebinar: Behind the Scenes on Guided Analytics
Webinar: Behind the Scenes on Guided Analytics
 
SOA, OTD, and Web 2.0 = Collaboration
SOA, OTD, and Web 2.0 = CollaborationSOA, OTD, and Web 2.0 = Collaboration
SOA, OTD, and Web 2.0 = Collaboration
 
Cloud-Native Microservices using Helidon
Cloud-Native Microservices using HelidonCloud-Native Microservices using Helidon
Cloud-Native Microservices using Helidon
 
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetesSpryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
 
Agile integration activation: get hands on with ap-is
Agile integration activation: get hands on with ap-isAgile integration activation: get hands on with ap-is
Agile integration activation: get hands on with ap-is
 
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
 
The 3 pillars of agile integration: Container, Connector and API
The 3 pillars of agile integration:  Container, Connector and APIThe 3 pillars of agile integration:  Container, Connector and API
The 3 pillars of agile integration: Container, Connector and API
 
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
 

Similar to Why you should migrate to GraphQL in 2019

APIdays Paris 2019 - Real World Graphene: Lessons Learned from Building a Gra...
APIdays Paris 2019 - Real World Graphene: Lessons Learned from Building a Gra...APIdays Paris 2019 - Real World Graphene: Lessons Learned from Building a Gra...
APIdays Paris 2019 - Real World Graphene: Lessons Learned from Building a Gra...apidays
 
GraphQL Data Loaders - How to feed your GraphQL API with data the smart way
GraphQL Data Loaders - How to feed your GraphQL API with data the smart wayGraphQL Data Loaders - How to feed your GraphQL API with data the smart way
GraphQL Data Loaders - How to feed your GraphQL API with data the smart wayMirumee Software
 
IoT Smart APIs using Nomos RuleX
IoT Smart APIs using Nomos RuleXIoT Smart APIs using Nomos RuleX
IoT Smart APIs using Nomos RuleXCliff Faurer
 
AWS Stockholm Summit 19- Building serverless applications with GraphQL
AWS Stockholm Summit 19- Building serverless applications with GraphQLAWS Stockholm Summit 19- Building serverless applications with GraphQL
AWS Stockholm Summit 19- Building serverless applications with GraphQLMarcia Villalba
 
Airbus Goes Serverless with AWS to Improve Fleet Operations (MFG315) - AWS re...
Airbus Goes Serverless with AWS to Improve Fleet Operations (MFG315) - AWS re...Airbus Goes Serverless with AWS to Improve Fleet Operations (MFG315) - AWS re...
Airbus Goes Serverless with AWS to Improve Fleet Operations (MFG315) - AWS re...Amazon Web Services
 
Intro to GraphQL for Database Developers
Intro to GraphQL for Database DevelopersIntro to GraphQL for Database Developers
Intro to GraphQL for Database DevelopersDaniel McGhan
 
Microsoft Dynamics AX- Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics AX- Robotic Process Automation (RPA) with RapiseMicrosoft Dynamics AX- Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics AX- Robotic Process Automation (RPA) with RapiseAdam Sandman
 
Cisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco DevNet
 
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages –  Embrace, Extend, IntegrateIBM Connect AD206 IBM Domino XPages –  Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, IntegrateNiklas Heidloff
 
Magento2.3 - GraphQL introduction
Magento2.3  - GraphQL introductionMagento2.3  - GraphQL introduction
Magento2.3 - GraphQL introductionVishakha Borkar
 
Building Volkswagen Group's Digital Ecosystem (AMT304) - AWS re:Invent 2018
Building Volkswagen Group's Digital Ecosystem (AMT304) - AWS re:Invent 2018Building Volkswagen Group's Digital Ecosystem (AMT304) - AWS re:Invent 2018
Building Volkswagen Group's Digital Ecosystem (AMT304) - AWS re:Invent 2018Amazon Web Services
 
0430 toronto smac_meetup_worklight_intro_final
0430 toronto smac_meetup_worklight_intro_final0430 toronto smac_meetup_worklight_intro_final
0430 toronto smac_meetup_worklight_intro_finalRaul Chong
 
Marcia Villalba "Developing Serverless Applications with GraphQL"
Marcia Villalba "Developing Serverless Applications with GraphQL"Marcia Villalba "Developing Serverless Applications with GraphQL"
Marcia Villalba "Developing Serverless Applications with GraphQL"Fwdays
 
IBM Enterprise Social Solutions on Bluemix (XPages and Connections)
IBM Enterprise Social Solutions  on Bluemix (XPages and Connections)IBM Enterprise Social Solutions  on Bluemix (XPages and Connections)
IBM Enterprise Social Solutions on Bluemix (XPages and Connections)Niklas Heidloff
 
apidays Helsinki & North 2023 - The future of API Management, Jona Apelbaum &...
apidays Helsinki & North 2023 - The future of API Management, Jona Apelbaum &...apidays Helsinki & North 2023 - The future of API Management, Jona Apelbaum &...
apidays Helsinki & North 2023 - The future of API Management, Jona Apelbaum &...apidays
 
Kubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experienceKubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experienceSAP HANA Cloud Platform
 

Similar to Why you should migrate to GraphQL in 2019 (20)

APIdays Paris 2019 - Real World Graphene: Lessons Learned from Building a Gra...
APIdays Paris 2019 - Real World Graphene: Lessons Learned from Building a Gra...APIdays Paris 2019 - Real World Graphene: Lessons Learned from Building a Gra...
APIdays Paris 2019 - Real World Graphene: Lessons Learned from Building a Gra...
 
GraphQL Data Loaders - How to feed your GraphQL API with data the smart way
GraphQL Data Loaders - How to feed your GraphQL API with data the smart wayGraphQL Data Loaders - How to feed your GraphQL API with data the smart way
GraphQL Data Loaders - How to feed your GraphQL API with data the smart way
 
IoT Smart APIs using Nomos RuleX
IoT Smart APIs using Nomos RuleXIoT Smart APIs using Nomos RuleX
IoT Smart APIs using Nomos RuleX
 
AWS Stockholm Summit 19- Building serverless applications with GraphQL
AWS Stockholm Summit 19- Building serverless applications with GraphQLAWS Stockholm Summit 19- Building serverless applications with GraphQL
AWS Stockholm Summit 19- Building serverless applications with GraphQL
 
Airbus Goes Serverless with AWS to Improve Fleet Operations (MFG315) - AWS re...
Airbus Goes Serverless with AWS to Improve Fleet Operations (MFG315) - AWS re...Airbus Goes Serverless with AWS to Improve Fleet Operations (MFG315) - AWS re...
Airbus Goes Serverless with AWS to Improve Fleet Operations (MFG315) - AWS re...
 
Intro to GraphQL for Database Developers
Intro to GraphQL for Database DevelopersIntro to GraphQL for Database Developers
Intro to GraphQL for Database Developers
 
Microsoft Dynamics AX- Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics AX- Robotic Process Automation (RPA) with RapiseMicrosoft Dynamics AX- Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics AX- Robotic Process Automation (RPA) with Rapise
 
Akamai as Code
Akamai as CodeAkamai as Code
Akamai as Code
 
Cisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable Web
 
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages –  Embrace, Extend, IntegrateIBM Connect AD206 IBM Domino XPages –  Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
 
Magento2.3 - GraphQL introduction
Magento2.3  - GraphQL introductionMagento2.3  - GraphQL introduction
Magento2.3 - GraphQL introduction
 
Scribe Online CDK & Connector Development
Scribe Online CDK & Connector DevelopmentScribe Online CDK & Connector Development
Scribe Online CDK & Connector Development
 
Building Volkswagen Group's Digital Ecosystem (AMT304) - AWS re:Invent 2018
Building Volkswagen Group's Digital Ecosystem (AMT304) - AWS re:Invent 2018Building Volkswagen Group's Digital Ecosystem (AMT304) - AWS re:Invent 2018
Building Volkswagen Group's Digital Ecosystem (AMT304) - AWS re:Invent 2018
 
0430 toronto smac_meetup_worklight_intro_final
0430 toronto smac_meetup_worklight_intro_final0430 toronto smac_meetup_worklight_intro_final
0430 toronto smac_meetup_worklight_intro_final
 
Marcia Villalba "Developing Serverless Applications with GraphQL"
Marcia Villalba "Developing Serverless Applications with GraphQL"Marcia Villalba "Developing Serverless Applications with GraphQL"
Marcia Villalba "Developing Serverless Applications with GraphQL"
 
IBM Enterprise Social Solutions on Bluemix (XPages and Connections)
IBM Enterprise Social Solutions  on Bluemix (XPages and Connections)IBM Enterprise Social Solutions  on Bluemix (XPages and Connections)
IBM Enterprise Social Solutions on Bluemix (XPages and Connections)
 
apidays Helsinki & North 2023 - The future of API Management, Jona Apelbaum &...
apidays Helsinki & North 2023 - The future of API Management, Jona Apelbaum &...apidays Helsinki & North 2023 - The future of API Management, Jona Apelbaum &...
apidays Helsinki & North 2023 - The future of API Management, Jona Apelbaum &...
 
The Decoupled CMS in Financial Services
The Decoupled CMS in Financial ServicesThe Decoupled CMS in Financial Services
The Decoupled CMS in Financial Services
 
Kubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experienceKubernetes, Istio and Knative - noteworthy practical experience
Kubernetes, Istio and Knative - noteworthy practical experience
 
Evolution of API-driven Architectures
Evolution of API-driven ArchitecturesEvolution of API-driven Architectures
Evolution of API-driven Architectures
 

Recently uploaded

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 

Recently uploaded (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

Why you should migrate to GraphQL in 2019

  • 1. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Why you should migrate to GraphQL in 2019 Marcin Gębala
  • 2. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE About me ■ Python developer @ Mirumee Software ■ Lead developer and open-source community maintainer @ Saleor e-commerce platform ■ 1 year experience with GraphQL - building a GraphQL API for Saleor @maarcingebala github.com/maarcingebala
  • 3. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Agenda ■ GraphQL - introduction & core concepts ■ Capabilities of GraphQL ecosystem ■ Problems
  • 4. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE GraphQL - introduction
  • 5. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE A data query language and specification developed internally by Facebook in 2012 before being publicly open sourced in 2015. It provides an alternative to REST-based architectures with the purpose of increasing developer productivity and minimizing amounts of data transferred Source: https://gql.foundation/ GraphQL
  • 6. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE ■ Client defines what data to fetch ■ Queries, mutations, subscriptions ■ POST, single endpoint, single request ■ Strong typing ■ Introspection GraphQL - core concepts
  • 7. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE C# / .NET Clojure Elixir Erlang Go Groovy Java JavaScript PHP Python Scala Ruby C# / .NET Clojurescript Go Java / Android JavaScript Swift / Objective-C iOS Python Server implementations Client implementations Source: https://graphql.org/code/
  • 8. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Companies using GraphQL Source: Geoff Schmidt’s talk from GraphQL Summit 2018 (https://youtu.be/IjJkAL4RWyQ)
  • 9. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Demo - Github v4 API
  • 10. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Capabilities of GraphQL ecosystem
  • 11. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Entire API as a single file ■ Versioning ■ Easy to find usages of particular types ■ Clear contract between backend and frontend schema.graphql
  • 12. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Flexible resolvers Field resolvers allow easily implement fetching data from different sources: memory, disk, network, microservices. REST API Database Search engine S3 GraphQL Web Mobile
  • 13. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Simpler state management ■ API is your application state ■ No Redux or MobX stores ■ apollo-link-state - local state management with GraphQL ■ React Context API
  • 14. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Apollo Client
  • 15. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE ■ Apollo GraphQL Extension for VSCode ■ GraphiQL / Playground experience in the editor ■ Performance statistics from Apollo Engine IDE integrations Apollo GraphQL plugin running in VSCode
  • 16. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Generating static types GraphQL type from schema definition Query defined by a frontend view Typescript type used in frontend code Instantly reflect backend changes in the frontend code. Support: Swift, Typescript, Flow, Scala
  • 17. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE ■ Tracks API changes, deprecated fields ■ Performance metrics ■ List of connected clients Apollo Engine
  • 18. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE ■ Best practices are still emerging ■ Differences between frameworks ■ Caching Problems
  • 19. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE Summary
  • 20. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE ■ Modern and battle-tested stack ■ Frontend productivity ■ Backend flexibility ■ Happy developers :) So what are the benefits of migrating to GraphQL?
  • 21. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE ■ Apollo Tutorial ■ Netflix’s migration case study ■ Shopify’s GraphQL design tutorial ■ Anemic mutations design Resources
  • 22. COPYRIGHT © 2009–2019 MIRUMEE SOFTWARE THANK YOU! QUESTIONS?