SlideShare a Scribd company logo
1 of 16
GraphQL
20th April 2018
What is GraphQL
● Not a database, library
● Language agnostic
● Query Language
● Specification, not an implementation
○ Created by Facebook
○ There is no install in https://graphql.org/ , you can choose whichever implementation
What is it trying to solve
● The high number of round-trip requests in applications
What is it trying to solve
● The high number of round-trip requests in applications
What is it trying to solve
● The high number of round-trip requests in applications
What is it trying to solve
● The high number of round-trip requests in applications
What is it trying to solve
● The amount of work required to produce pages
● Client
○ Create a new view
○ Update a new view
○ Change a view
● Server
○ Update endpoints
○ Create endpoints
How does it work
● Example
How does it work
● Query roots
○ Entry points to the database
How does it work
● Can I query name, location, and products?
How does it work
● Can I query name, location, and products?
How does it work
● Can I query name, location, and products?
Introspection
● Every graphQL server has a special `__schema` that exposes all the fields
and object types
● Create tools like:
○ Auto-documentation
■ Ask server what are fields and create docs
○ Static validation
■ You know beforehand if the query is valid
○ IDE integration
■ IDEs can auto complete and validate queries
Problems
● N+1 queries
○ Solution: batching, using loaders in schemas
● HTTP Caching
○ Solution: Replay/Apollo
○ These libraries cache data locally, minimizes amount of data requested, does `diff`
● Security - malicious queries, infinite loops
○ Solution: Timeouts, query depth (nothing is deeper than 10 levels), query complexity
Future
● Deferred queries
○ Send me name/description first
○ Split into different queries
Key takeaways
● Exposes the server
● Lets the client decide what they want
● Reduces code complexity
● Real time query validation

More Related Content

What's hot

Voice-driven Knowledge Graph Journey with Neo4j and Amazon Alexa
Voice-driven Knowledge Graph Journey with Neo4j and Amazon AlexaVoice-driven Knowledge Graph Journey with Neo4j and Amazon Alexa
Voice-driven Knowledge Graph Journey with Neo4j and Amazon AlexaGraphAware
 
Spring Data Neo4j: Graph Power Your Enterprise Apps
Spring Data Neo4j: Graph Power Your Enterprise AppsSpring Data Neo4j: Graph Power Your Enterprise Apps
Spring Data Neo4j: Graph Power Your Enterprise AppsGraphAware
 
GraphQL @ Manc.JS (March 2018)
GraphQL @ Manc.JS (March 2018)GraphQL @ Manc.JS (March 2018)
GraphQL @ Manc.JS (March 2018)Chris Grice
 
Bachelor's Thesis Presentation (shortened)
Bachelor's Thesis Presentation (shortened)Bachelor's Thesis Presentation (shortened)
Bachelor's Thesis Presentation (shortened)Nikita Kurpas
 
Session 04 - Object Repository Contd.
Session 04 - Object Repository Contd.Session 04 - Object Repository Contd.
Session 04 - Object Repository Contd.rajaselv
 
Linked Data voor developers - PiLOD congres 25 juni
Linked Data voor developers - PiLOD congres 25 juniLinked Data voor developers - PiLOD congres 25 juni
Linked Data voor developers - PiLOD congres 25 juniDimitri van Hees
 
Generating Perfect API Code with quicktype.io by Mark Probst
Generating Perfect API Code with quicktype.io by Mark ProbstGenerating Perfect API Code with quicktype.io by Mark Probst
Generating Perfect API Code with quicktype.io by Mark ProbstPostman
 
AWS CDK: Infrastructure in TypeScript
AWS CDK: Infrastructure in TypeScriptAWS CDK: Infrastructure in TypeScript
AWS CDK: Infrastructure in TypeScriptAdam Woods
 
WSDM Cup 2017: Vandalism Detection
WSDM Cup 2017: Vandalism DetectionWSDM Cup 2017: Vandalism Detection
WSDM Cup 2017: Vandalism DetectionAlexey Grigorev
 
Serverless Code Components
Serverless Code Components Serverless Code Components
Serverless Code Components Shimon Tolts
 
Drupal 7 multilingual strategy
Drupal 7 multilingual strategyDrupal 7 multilingual strategy
Drupal 7 multilingual strategyMariano
 
Into to GraphQL
Into to GraphQLInto to GraphQL
Into to GraphQLshobot
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsAsher Sterkin
 
Trivadis TechEvent 2017 Tools and Methods for DB Migrations by Kim Berg Hansen
Trivadis TechEvent 2017 Tools and Methods for DB Migrations by Kim Berg HansenTrivadis TechEvent 2017 Tools and Methods for DB Migrations by Kim Berg Hansen
Trivadis TechEvent 2017 Tools and Methods for DB Migrations by Kim Berg HansenTrivadis
 
Angular js
Angular jsAngular js
Angular jsmiladiir
 
Graphql Intro (Tutorial and Example)
Graphql Intro (Tutorial and Example)Graphql Intro (Tutorial and Example)
Graphql Intro (Tutorial and Example)Rafael Wilber Kerr
 
Data-driven development with GraphQL and Flow
Data-driven development with GraphQL and FlowData-driven development with GraphQL and Flow
Data-driven development with GraphQL and FlowKang Jin Chia
 

What's hot (19)

Voice-driven Knowledge Graph Journey with Neo4j and Amazon Alexa
Voice-driven Knowledge Graph Journey with Neo4j and Amazon AlexaVoice-driven Knowledge Graph Journey with Neo4j and Amazon Alexa
Voice-driven Knowledge Graph Journey with Neo4j and Amazon Alexa
 
Spring Data Neo4j: Graph Power Your Enterprise Apps
Spring Data Neo4j: Graph Power Your Enterprise AppsSpring Data Neo4j: Graph Power Your Enterprise Apps
Spring Data Neo4j: Graph Power Your Enterprise Apps
 
GraphQL @ Manc.JS (March 2018)
GraphQL @ Manc.JS (March 2018)GraphQL @ Manc.JS (March 2018)
GraphQL @ Manc.JS (March 2018)
 
Bachelor's Thesis Presentation (shortened)
Bachelor's Thesis Presentation (shortened)Bachelor's Thesis Presentation (shortened)
Bachelor's Thesis Presentation (shortened)
 
Session 04 - Object Repository Contd.
Session 04 - Object Repository Contd.Session 04 - Object Repository Contd.
Session 04 - Object Repository Contd.
 
JavaScript | Introduction
JavaScript | IntroductionJavaScript | Introduction
JavaScript | Introduction
 
Intro to GraphQL
 Intro to GraphQL Intro to GraphQL
Intro to GraphQL
 
Linked Data voor developers - PiLOD congres 25 juni
Linked Data voor developers - PiLOD congres 25 juniLinked Data voor developers - PiLOD congres 25 juni
Linked Data voor developers - PiLOD congres 25 juni
 
Generating Perfect API Code with quicktype.io by Mark Probst
Generating Perfect API Code with quicktype.io by Mark ProbstGenerating Perfect API Code with quicktype.io by Mark Probst
Generating Perfect API Code with quicktype.io by Mark Probst
 
AWS CDK: Infrastructure in TypeScript
AWS CDK: Infrastructure in TypeScriptAWS CDK: Infrastructure in TypeScript
AWS CDK: Infrastructure in TypeScript
 
WSDM Cup 2017: Vandalism Detection
WSDM Cup 2017: Vandalism DetectionWSDM Cup 2017: Vandalism Detection
WSDM Cup 2017: Vandalism Detection
 
Serverless Code Components
Serverless Code Components Serverless Code Components
Serverless Code Components
 
Drupal 7 multilingual strategy
Drupal 7 multilingual strategyDrupal 7 multilingual strategy
Drupal 7 multilingual strategy
 
Into to GraphQL
Into to GraphQLInto to GraphQL
Into to GraphQL
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
 
Trivadis TechEvent 2017 Tools and Methods for DB Migrations by Kim Berg Hansen
Trivadis TechEvent 2017 Tools and Methods for DB Migrations by Kim Berg HansenTrivadis TechEvent 2017 Tools and Methods for DB Migrations by Kim Berg Hansen
Trivadis TechEvent 2017 Tools and Methods for DB Migrations by Kim Berg Hansen
 
Angular js
Angular jsAngular js
Angular js
 
Graphql Intro (Tutorial and Example)
Graphql Intro (Tutorial and Example)Graphql Intro (Tutorial and Example)
Graphql Intro (Tutorial and Example)
 
Data-driven development with GraphQL and Flow
Data-driven development with GraphQL and FlowData-driven development with GraphQL and Flow
Data-driven development with GraphQL and Flow
 

Similar to Green Custard Friday Talk 8: GraphQL

Kotlin REST & GraphQL API
Kotlin REST & GraphQL APIKotlin REST & GraphQL API
Kotlin REST & GraphQL APISean O'Brien
 
Marco Liberati - Graph analytics
Marco Liberati - Graph analyticsMarco Liberati - Graph analytics
Marco Liberati - Graph analyticsCodemotion
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphRM
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)rc2209
 
GraphQL Bangkok meetup 5.0
GraphQL Bangkok meetup 5.0GraphQL Bangkok meetup 5.0
GraphQL Bangkok meetup 5.0Tobias Meixner
 
Implementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor DeryaginImplementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor DeryaginElixir Club
 
Serverless Clojure and ML prototyping: an experience report
Serverless Clojure and ML prototyping: an experience reportServerless Clojure and ML prototyping: an experience report
Serverless Clojure and ML prototyping: an experience reportMetosin Oy
 
OpenSearch.pdf
OpenSearch.pdfOpenSearch.pdf
OpenSearch.pdfAbhi Jain
 
Load testing in Zonky with Gatling
Load testing in Zonky with GatlingLoad testing in Zonky with Gatling
Load testing in Zonky with GatlingPetr Vlček
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless worldMatthias Luebken
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartMukesh Singh
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersJon Peck
 
apacheairflow-160827123852.pdf
apacheairflow-160827123852.pdfapacheairflow-160827123852.pdf
apacheairflow-160827123852.pdfvijayapraba1
 
Adding GraphQL to your existing architecture
Adding GraphQL to your existing architectureAdding GraphQL to your existing architecture
Adding GraphQL to your existing architectureSashko Stubailo
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanDrew Malone
 
Google app engine - Soft Uni 19.06.2014
Google app engine - Soft Uni 19.06.2014Google app engine - Soft Uni 19.06.2014
Google app engine - Soft Uni 19.06.2014Dimitar Danailov
 

Similar to Green Custard Friday Talk 8: GraphQL (20)

Kotlin REST & GraphQL API
Kotlin REST & GraphQL APIKotlin REST & GraphQL API
Kotlin REST & GraphQL API
 
Marco Liberati - Graph analytics
Marco Liberati - Graph analyticsMarco Liberati - Graph analytics
Marco Liberati - Graph analytics
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDB
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)
 
GraphQL Bangkok meetup 5.0
GraphQL Bangkok meetup 5.0GraphQL Bangkok meetup 5.0
GraphQL Bangkok meetup 5.0
 
Implementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor DeryaginImplementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor Deryagin
 
Serverless Clojure and ML prototyping: an experience report
Serverless Clojure and ML prototyping: an experience reportServerless Clojure and ML prototyping: an experience report
Serverless Clojure and ML prototyping: an experience report
 
OpenSearch.pdf
OpenSearch.pdfOpenSearch.pdf
OpenSearch.pdf
 
Introducing Datawave
Introducing DatawaveIntroducing Datawave
Introducing Datawave
 
Load testing in Zonky with Gatling
Load testing in Zonky with GatlingLoad testing in Zonky with Gatling
Load testing in Zonky with Gatling
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
Cloud arch patterns
Cloud arch patternsCloud arch patterns
Cloud arch patterns
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @Lendingkart
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
apacheairflow-160827123852.pdf
apacheairflow-160827123852.pdfapacheairflow-160827123852.pdf
apacheairflow-160827123852.pdf
 
Adding GraphQL to your existing architecture
Adding GraphQL to your existing architectureAdding GraphQL to your existing architecture
Adding GraphQL to your existing architecture
 
Apache Airflow
Apache AirflowApache Airflow
Apache Airflow
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik Mukelyan
 
Google app engine - Soft Uni 19.06.2014
Google app engine - Soft Uni 19.06.2014Google app engine - Soft Uni 19.06.2014
Google app engine - Soft Uni 19.06.2014
 

More from Green Custard

Green Custard Friday Talk 22: Flutter
Green Custard Friday Talk 22: FlutterGreen Custard Friday Talk 22: Flutter
Green Custard Friday Talk 22: FlutterGreen Custard
 
Green Custard Friday Talk 21: React Hooks
Green Custard Friday Talk 21: React HooksGreen Custard Friday Talk 21: React Hooks
Green Custard Friday Talk 21: React HooksGreen Custard
 
Green Custard Friday Talk 19: Chaos Engineering
Green Custard Friday Talk 19: Chaos EngineeringGreen Custard Friday Talk 19: Chaos Engineering
Green Custard Friday Talk 19: Chaos EngineeringGreen Custard
 
Green Custard Friday Talk 17: Ray Tracing
Green Custard Friday Talk 17: Ray TracingGreen Custard Friday Talk 17: Ray Tracing
Green Custard Friday Talk 17: Ray TracingGreen Custard
 
Green Custard Friday Talk 15: The UX Conference
Green Custard Friday Talk 15: The UX ConferenceGreen Custard Friday Talk 15: The UX Conference
Green Custard Friday Talk 15: The UX ConferenceGreen Custard
 
Green Custard Friday Talk 14: E-Learning Standards
Green Custard Friday Talk 14: E-Learning StandardsGreen Custard Friday Talk 14: E-Learning Standards
Green Custard Friday Talk 14: E-Learning StandardsGreen Custard
 
Green Custard Friday Talk 13: Procedural Land Generation
Green Custard Friday Talk 13: Procedural Land GenerationGreen Custard Friday Talk 13: Procedural Land Generation
Green Custard Friday Talk 13: Procedural Land GenerationGreen Custard
 
Green Custard Friday Talk 11: Office Wellbeing
Green Custard Friday Talk 11: Office WellbeingGreen Custard Friday Talk 11: Office Wellbeing
Green Custard Friday Talk 11: Office WellbeingGreen Custard
 
Green Custard Friday Talk 9: Software Religious Arguments
Green Custard Friday Talk 9: Software Religious ArgumentsGreen Custard Friday Talk 9: Software Religious Arguments
Green Custard Friday Talk 9: Software Religious ArgumentsGreen Custard
 
Green Custard Friday Talk 7: Scientific Product Design
Green Custard Friday Talk 7: Scientific Product DesignGreen Custard Friday Talk 7: Scientific Product Design
Green Custard Friday Talk 7: Scientific Product DesignGreen Custard
 
Green Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native PerformanceGreen Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native PerformanceGreen Custard
 
Green Custard Friday Talk 3: Extreme Sheepdog Trials
Green Custard Friday Talk 3: Extreme Sheepdog TrialsGreen Custard Friday Talk 3: Extreme Sheepdog Trials
Green Custard Friday Talk 3: Extreme Sheepdog TrialsGreen Custard
 
Green Custard Friday Talk 2: Technology in Games
Green Custard Friday Talk 2: Technology in GamesGreen Custard Friday Talk 2: Technology in Games
Green Custard Friday Talk 2: Technology in GamesGreen Custard
 

More from Green Custard (14)

AWS IoT Bootcamp
AWS IoT BootcampAWS IoT Bootcamp
AWS IoT Bootcamp
 
Green Custard Friday Talk 22: Flutter
Green Custard Friday Talk 22: FlutterGreen Custard Friday Talk 22: Flutter
Green Custard Friday Talk 22: Flutter
 
Green Custard Friday Talk 21: React Hooks
Green Custard Friday Talk 21: React HooksGreen Custard Friday Talk 21: React Hooks
Green Custard Friday Talk 21: React Hooks
 
Green Custard Friday Talk 19: Chaos Engineering
Green Custard Friday Talk 19: Chaos EngineeringGreen Custard Friday Talk 19: Chaos Engineering
Green Custard Friday Talk 19: Chaos Engineering
 
Green Custard Friday Talk 17: Ray Tracing
Green Custard Friday Talk 17: Ray TracingGreen Custard Friday Talk 17: Ray Tracing
Green Custard Friday Talk 17: Ray Tracing
 
Green Custard Friday Talk 15: The UX Conference
Green Custard Friday Talk 15: The UX ConferenceGreen Custard Friday Talk 15: The UX Conference
Green Custard Friday Talk 15: The UX Conference
 
Green Custard Friday Talk 14: E-Learning Standards
Green Custard Friday Talk 14: E-Learning StandardsGreen Custard Friday Talk 14: E-Learning Standards
Green Custard Friday Talk 14: E-Learning Standards
 
Green Custard Friday Talk 13: Procedural Land Generation
Green Custard Friday Talk 13: Procedural Land GenerationGreen Custard Friday Talk 13: Procedural Land Generation
Green Custard Friday Talk 13: Procedural Land Generation
 
Green Custard Friday Talk 11: Office Wellbeing
Green Custard Friday Talk 11: Office WellbeingGreen Custard Friday Talk 11: Office Wellbeing
Green Custard Friday Talk 11: Office Wellbeing
 
Green Custard Friday Talk 9: Software Religious Arguments
Green Custard Friday Talk 9: Software Religious ArgumentsGreen Custard Friday Talk 9: Software Religious Arguments
Green Custard Friday Talk 9: Software Religious Arguments
 
Green Custard Friday Talk 7: Scientific Product Design
Green Custard Friday Talk 7: Scientific Product DesignGreen Custard Friday Talk 7: Scientific Product Design
Green Custard Friday Talk 7: Scientific Product Design
 
Green Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native PerformanceGreen Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native Performance
 
Green Custard Friday Talk 3: Extreme Sheepdog Trials
Green Custard Friday Talk 3: Extreme Sheepdog TrialsGreen Custard Friday Talk 3: Extreme Sheepdog Trials
Green Custard Friday Talk 3: Extreme Sheepdog Trials
 
Green Custard Friday Talk 2: Technology in Games
Green Custard Friday Talk 2: Technology in GamesGreen Custard Friday Talk 2: Technology in Games
Green Custard Friday Talk 2: Technology in Games
 

Recently uploaded

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
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.
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 

Recently uploaded (20)

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
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 ...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 

Green Custard Friday Talk 8: GraphQL

  • 2. What is GraphQL ● Not a database, library ● Language agnostic ● Query Language ● Specification, not an implementation ○ Created by Facebook ○ There is no install in https://graphql.org/ , you can choose whichever implementation
  • 3. What is it trying to solve ● The high number of round-trip requests in applications
  • 4. What is it trying to solve ● The high number of round-trip requests in applications
  • 5. What is it trying to solve ● The high number of round-trip requests in applications
  • 6. What is it trying to solve ● The high number of round-trip requests in applications
  • 7. What is it trying to solve ● The amount of work required to produce pages ● Client ○ Create a new view ○ Update a new view ○ Change a view ● Server ○ Update endpoints ○ Create endpoints
  • 8. How does it work ● Example
  • 9. How does it work ● Query roots ○ Entry points to the database
  • 10. How does it work ● Can I query name, location, and products?
  • 11. How does it work ● Can I query name, location, and products?
  • 12. How does it work ● Can I query name, location, and products?
  • 13. Introspection ● Every graphQL server has a special `__schema` that exposes all the fields and object types ● Create tools like: ○ Auto-documentation ■ Ask server what are fields and create docs ○ Static validation ■ You know beforehand if the query is valid ○ IDE integration ■ IDEs can auto complete and validate queries
  • 14. Problems ● N+1 queries ○ Solution: batching, using loaders in schemas ● HTTP Caching ○ Solution: Replay/Apollo ○ These libraries cache data locally, minimizes amount of data requested, does `diff` ● Security - malicious queries, infinite loops ○ Solution: Timeouts, query depth (nothing is deeper than 10 levels), query complexity
  • 15. Future ● Deferred queries ○ Send me name/description first ○ Split into different queries
  • 16. Key takeaways ● Exposes the server ● Lets the client decide what they want ● Reduces code complexity ● Real time query validation