SlideShare a Scribd company logo
1 of 22
Download to read offline
GraphQL
Martin Pham - CTO Fornace Srl
🤩
Real-time programming
A loooong
story
between
client and
server
Who works on server-side applications? How
many Server APIs you've created until now 🤩?
Have you ever written API documentations? and
update it frequently?
And client-side developers, how many times you
worked with Remote APIs? Tell me how you were
working with undocumented APIs 😱
And how you handle the slow connection / or
even offline?
A E
B
C
D
API
CHALLENGES
D.
User doesn't want to wait
1 second to see the
update. He wants now,
NOW, NAOHHH 😟
Instant response
E.
Easy to understand, easy to
consume. Develop with smiles,
not with tears.
Developer friendly
B.
User would like to see all notes
he created on cloud, even when
he's on an airplane. He also
want to add some notes and
sync it with cloud later.
Connectivity
A.
A User has relationship with his
preferred Store, which has
relationship with its City, which
has relationship with other
Users who live in this City,
which ... blabla...
Data relationships
C.
We have a LiveGame today, how we could adjust
our system to fit 100.000 concurrent users?
Scalable
A E
B
C
D
REQUIREMENTS
D.
REALTIME
COLLABORATIONS
Instant response
E.
IMPLEMENTATIONS &
DOCUMENTATIONS
Developer friendly
B.
OFFLINE SUPPORT,
WITH RE-SYNC
ABILITY
Connectivity
A.
FLEXIBLE
RELATIONSHIP
QUERY
Data relationships
C.
FLEXIBLE INFRASTRUCTURES
Scalable
WHAT WE ARE DOING?
REST
REPRESENTATIONAL STATE TRANSFER
Using API endpoints, each endpoint serves
different purpose.
SSE
SERVER-SENT EVENTS
Client keeps a long request to server, and
check every time server issues messages.
REST & SSE
-F*cking simple 😎.
-Hell of 1000 endpoints.
-Missing or Not up-to-date
documentations.
-SSE lacking support,
polyfills are very bad.
A E
B
C
D
SO?
D.
REALTIME
COLLABORATIONS
Instant response
E.
IMPLEMENTATIONS &
DOCUMENTATIONS
Developer friendly
B.
OFFLINE SUPPORT,
WITH RE-SYNC
ABILITY
Connectivity
A.
FLEXIBLE
RELATIONSHIP
QUERY
Data relationships
C.
FLEXIBLE INFRASTRUCTURES
Scalable
NOT SUPPORTED
IT HURTS
NOT STABLE
WE'RE ALL LAZY
SPAGHETTI CODE
We need
something
Facebook
We were having the same problems.
Then some lazy developers created GraphQL
for fun, and now it's serving 2.7 billion people.
Wanna try?
WHERE PEOPLE WASTE THEIR TIME
GraphQL
-Don't be fool by QL - query language
-Designed for API
-Query, mutation and realtime subscribe
-Self documented
-Don't worry, much more simple 🥰
Definition
-GraphQL Schema
-Ball object has x, y, z and size
-Query balls will return list of Ball
-Query addBall with ballData (type Ball) as
param, will return Boolean
Definition
-Easy to learn, easy to work.
-Everything has Type: Enum, String, Int,
Object,...
-Built-in Type validation.
-Mark deprecations easily.
-Provide directives for dynamic queries.
-From Schema to Code without pain.
Query &
Mutate data
-What you ask is What you get
-What you design is What you document
Subscription
- Realtime updates made simple
Resolver
- Define handler for every node of query
Apollo
GraphQL
Even easier for GraphQL works
A E
B
C
D
SO?
D.
REALTIME
COLLABORATIONS
Instant response
E.
IMPLEMENTATIONS &
DOCUMENTATIONS
Developer friendly
B.
OFFLINE SUPPORT,
WITH RE-SYNC
ABILITY
Connectivity
A.
FLEXIBLE
RELATIONSHIP
QUERY
Data relationships
C.
FLEXIBLE INFRASTRUCTURES
Scalable
OF COURSE!
YEAH!
EASY
SURE!
YOU WILL LOVE IT
DevTools
-Interactive playground to test GraphQL queries
-Apollo server & client libraries
-React friendly
-Native support for all client platforms
-Huge community support
Hooks supported!
Let's get our hands dirty
We create a React application, let users
play with balls. All ball data will be
saved on server.
(not wet)
All balls are provided from Pornhub
Gaio Giulio Cesare
GraphQL helped me to dominate
Roman politics, to become one of the
greatest military minds in history, and
to sleep with Cleopatra 😻
FULL STACK DEVELOPER
Thank you!

More Related Content

What's hot

apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays
 
apidays LIVE Paris 2021 - Localizing OpenAPI Specification by Olga Baybakova,...
apidays LIVE Paris 2021 - Localizing OpenAPI Specification by Olga Baybakova,...apidays LIVE Paris 2021 - Localizing OpenAPI Specification by Olga Baybakova,...
apidays LIVE Paris 2021 - Localizing OpenAPI Specification by Olga Baybakova,...apidays
 
Create smarter bot enabled apps with agilepoint nx
Create smarter bot enabled apps with agilepoint nxCreate smarter bot enabled apps with agilepoint nx
Create smarter bot enabled apps with agilepoint nxPeter Cheung
 
GraphQL Will Do To REST What JSON Did To XML
GraphQL Will Do To REST What JSON Did To XMLGraphQL Will Do To REST What JSON Did To XML
GraphQL Will Do To REST What JSON Did To XMLRoy Derks
 
API-first development
API-first developmentAPI-first development
API-first developmentVasco Veloso
 
What Postman Did for a CEO Who Can’t Code by Craig Balkin
What Postman Did for a CEO Who Can’t Code by Craig BalkinWhat Postman Did for a CEO Who Can’t Code by Craig Balkin
What Postman Did for a CEO Who Can’t Code by Craig BalkinPostman
 
Beautiful PhoneGap Apps
Beautiful PhoneGap AppsBeautiful PhoneGap Apps
Beautiful PhoneGap AppsTerry Ryan
 
Babbel hiring at TechStartupJobs Fair Berlin Autumn 2015
Babbel hiring at TechStartupJobs Fair Berlin Autumn 2015Babbel hiring at TechStartupJobs Fair Berlin Autumn 2015
Babbel hiring at TechStartupJobs Fair Berlin Autumn 2015TechMeetups
 
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...J On The Beach
 
Angular Routing - Angular Hack Day Melbourne 2019
Angular Routing - Angular Hack Day Melbourne 2019Angular Routing - Angular Hack Day Melbourne 2019
Angular Routing - Angular Hack Day Melbourne 2019Jernej Kavka (JK)
 
apidays LIVE London 2021 - Human-centred API Governance by Arnaud Lauret, Nat...
apidays LIVE London 2021 - Human-centred API Governance by Arnaud Lauret, Nat...apidays LIVE London 2021 - Human-centred API Governance by Arnaud Lauret, Nat...
apidays LIVE London 2021 - Human-centred API Governance by Arnaud Lauret, Nat...apidays
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
Home automation with javascript
Home automation with javascriptHome automation with javascript
Home automation with javascriptArnav Gupta
 
PyCon PL 2014 executable api
PyCon PL 2014   executable apiPyCon PL 2014   executable api
PyCon PL 2014 executable apiWojtek Erbetowski
 
Speed Welshpool - Transport Technology, Realtime, PODs and APIs
Speed Welshpool - Transport Technology, Realtime, PODs and APIsSpeed Welshpool - Transport Technology, Realtime, PODs and APIs
Speed Welshpool - Transport Technology, Realtime, PODs and APIsgeorge_edwards
 
“Fighting with giants - GraphQL soft adoption at Revolut” by Andrii Los
“Fighting with giants - GraphQL soft adoption at Revolut” by Andrii Los“Fighting with giants - GraphQL soft adoption at Revolut” by Andrii Los
“Fighting with giants - GraphQL soft adoption at Revolut” by Andrii LosIlyaDmitriev11
 

What's hot (19)

apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
 
apidays LIVE Paris 2021 - Localizing OpenAPI Specification by Olga Baybakova,...
apidays LIVE Paris 2021 - Localizing OpenAPI Specification by Olga Baybakova,...apidays LIVE Paris 2021 - Localizing OpenAPI Specification by Olga Baybakova,...
apidays LIVE Paris 2021 - Localizing OpenAPI Specification by Olga Baybakova,...
 
Aiman
AimanAiman
Aiman
 
Create smarter bot enabled apps with agilepoint nx
Create smarter bot enabled apps with agilepoint nxCreate smarter bot enabled apps with agilepoint nx
Create smarter bot enabled apps with agilepoint nx
 
Api guide
Api guide Api guide
Api guide
 
GraphQL Will Do To REST What JSON Did To XML
GraphQL Will Do To REST What JSON Did To XMLGraphQL Will Do To REST What JSON Did To XML
GraphQL Will Do To REST What JSON Did To XML
 
API-first development
API-first developmentAPI-first development
API-first development
 
Api First Design
Api First DesignApi First Design
Api First Design
 
What Postman Did for a CEO Who Can’t Code by Craig Balkin
What Postman Did for a CEO Who Can’t Code by Craig BalkinWhat Postman Did for a CEO Who Can’t Code by Craig Balkin
What Postman Did for a CEO Who Can’t Code by Craig Balkin
 
Beautiful PhoneGap Apps
Beautiful PhoneGap AppsBeautiful PhoneGap Apps
Beautiful PhoneGap Apps
 
Babbel hiring at TechStartupJobs Fair Berlin Autumn 2015
Babbel hiring at TechStartupJobs Fair Berlin Autumn 2015Babbel hiring at TechStartupJobs Fair Berlin Autumn 2015
Babbel hiring at TechStartupJobs Fair Berlin Autumn 2015
 
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
Learn how to build Functional Reactive Applications with Elm, Node.js and Inf...
 
Angular Routing - Angular Hack Day Melbourne 2019
Angular Routing - Angular Hack Day Melbourne 2019Angular Routing - Angular Hack Day Melbourne 2019
Angular Routing - Angular Hack Day Melbourne 2019
 
apidays LIVE London 2021 - Human-centred API Governance by Arnaud Lauret, Nat...
apidays LIVE London 2021 - Human-centred API Governance by Arnaud Lauret, Nat...apidays LIVE London 2021 - Human-centred API Governance by Arnaud Lauret, Nat...
apidays LIVE London 2021 - Human-centred API Governance by Arnaud Lauret, Nat...
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
Home automation with javascript
Home automation with javascriptHome automation with javascript
Home automation with javascript
 
PyCon PL 2014 executable api
PyCon PL 2014   executable apiPyCon PL 2014   executable api
PyCon PL 2014 executable api
 
Speed Welshpool - Transport Technology, Realtime, PODs and APIs
Speed Welshpool - Transport Technology, Realtime, PODs and APIsSpeed Welshpool - Transport Technology, Realtime, PODs and APIs
Speed Welshpool - Transport Technology, Realtime, PODs and APIs
 
“Fighting with giants - GraphQL soft adoption at Revolut” by Andrii Los
“Fighting with giants - GraphQL soft adoption at Revolut” by Andrii Los“Fighting with giants - GraphQL soft adoption at Revolut” by Andrii Los
“Fighting with giants - GraphQL soft adoption at Revolut” by Andrii Los
 

Similar to Introduction to GraphQL for beginners

Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Hafiz Ismail
 
Data Scenarios 2020: 6 Amazing Transformations
Data Scenarios 2020: 6 Amazing TransformationsData Scenarios 2020: 6 Amazing Transformations
Data Scenarios 2020: 6 Amazing TransformationsSafe Software
 
MongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug ReportingMongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug ReportingMongoDB
 
Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first classLibbySchulze
 
I Love APIs - Oct 2015
I Love APIs - Oct 2015I Love APIs - Oct 2015
I Love APIs - Oct 2015Mike McNeil
 
The API SlideShare for Bankers and Fintech Executives
The API SlideShare for Bankers and Fintech ExecutivesThe API SlideShare for Bankers and Fintech Executives
The API SlideShare for Bankers and Fintech ExecutivesMX
 
sitNL 2019 - SAP Conversational AI
sitNL 2019 - SAP Conversational AIsitNL 2019 - SAP Conversational AI
sitNL 2019 - SAP Conversational AIWim Snoep
 
Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersSashko Stubailo
 
The Complete Guide to API Development in 2022.pdf
The Complete Guide to API Development in 2022.pdfThe Complete Guide to API Development in 2022.pdf
The Complete Guide to API Development in 2022.pdfConcetto Labs
 
What new in Android n and Tensor Flow - Updates from Google #IO16
What new in Android n and Tensor Flow - Updates from Google #IO16What new in Android n and Tensor Flow - Updates from Google #IO16
What new in Android n and Tensor Flow - Updates from Google #IO16GBG Mumbai
 
MongoDB World 2018: Building Intelligent Apps with MongoDB & Google Cloud
MongoDB World 2018: Building Intelligent Apps with MongoDB & Google CloudMongoDB World 2018: Building Intelligent Apps with MongoDB & Google Cloud
MongoDB World 2018: Building Intelligent Apps with MongoDB & Google CloudMongoDB
 
Empower individuals with autism through coding
Empower individuals with autism through codingEmpower individuals with autism through coding
Empower individuals with autism through codinglivecode
 
GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018Sashko Stubailo
 
Industrial training seminar ppt on asp.net
Industrial training seminar ppt on asp.netIndustrial training seminar ppt on asp.net
Industrial training seminar ppt on asp.netPankaj Kushwaha
 
Google's serverless journey: past to present
Google's serverless journey: past to presentGoogle's serverless journey: past to present
Google's serverless journey: past to presentwesley chun
 
From API-First to SDK-First
From API-First to SDK-FirstFrom API-First to SDK-First
From API-First to SDK-FirstNordic APIs
 
Where Johnson From
Where Johnson FromWhere Johnson From
Where Johnson FromJohnson Wang
 

Similar to Introduction to GraphQL for beginners (20)

Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
 
Data Scenarios 2020: 6 Amazing Transformations
Data Scenarios 2020: 6 Amazing TransformationsData Scenarios 2020: 6 Amazing Transformations
Data Scenarios 2020: 6 Amazing Transformations
 
MongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug ReportingMongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug Reporting
 
Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first class
 
I Love APIs - Oct 2015
I Love APIs - Oct 2015I Love APIs - Oct 2015
I Love APIs - Oct 2015
 
CV
CVCV
CV
 
The API SlideShare for Bankers and Fintech Executives
The API SlideShare for Bankers and Fintech ExecutivesThe API SlideShare for Bankers and Fintech Executives
The API SlideShare for Bankers and Fintech Executives
 
sitNL 2019 - SAP Conversational AI
sitNL 2019 - SAP Conversational AIsitNL 2019 - SAP Conversational AI
sitNL 2019 - SAP Conversational AI
 
Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product Developers
 
The Complete Guide to API Development in 2022.pdf
The Complete Guide to API Development in 2022.pdfThe Complete Guide to API Development in 2022.pdf
The Complete Guide to API Development in 2022.pdf
 
What new in Android n and Tensor Flow - Updates from Google #IO16
What new in Android n and Tensor Flow - Updates from Google #IO16What new in Android n and Tensor Flow - Updates from Google #IO16
What new in Android n and Tensor Flow - Updates from Google #IO16
 
MongoDB World 2018: Building Intelligent Apps with MongoDB & Google Cloud
MongoDB World 2018: Building Intelligent Apps with MongoDB & Google CloudMongoDB World 2018: Building Intelligent Apps with MongoDB & Google Cloud
MongoDB World 2018: Building Intelligent Apps with MongoDB & Google Cloud
 
Empower individuals with autism through coding
Empower individuals with autism through codingEmpower individuals with autism through coding
Empower individuals with autism through coding
 
C++ programming
C++ programmingC++ programming
C++ programming
 
201001162_report
201001162_report201001162_report
201001162_report
 
GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018
 
Industrial training seminar ppt on asp.net
Industrial training seminar ppt on asp.netIndustrial training seminar ppt on asp.net
Industrial training seminar ppt on asp.net
 
Google's serverless journey: past to present
Google's serverless journey: past to presentGoogle's serverless journey: past to present
Google's serverless journey: past to present
 
From API-First to SDK-First
From API-First to SDK-FirstFrom API-First to SDK-First
From API-First to SDK-First
 
Where Johnson From
Where Johnson FromWhere Johnson From
Where Johnson From
 

Recently uploaded

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
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
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
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
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
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
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
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
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
 
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
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 

Recently uploaded (20)

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...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
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
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
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
 
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...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
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
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
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
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 

Introduction to GraphQL for beginners

  • 1. GraphQL Martin Pham - CTO Fornace Srl 🤩 Real-time programming
  • 2. A loooong story between client and server Who works on server-side applications? How many Server APIs you've created until now 🤩? Have you ever written API documentations? and update it frequently? And client-side developers, how many times you worked with Remote APIs? Tell me how you were working with undocumented APIs 😱 And how you handle the slow connection / or even offline?
  • 3. A E B C D API CHALLENGES D. User doesn't want to wait 1 second to see the update. He wants now, NOW, NAOHHH 😟 Instant response E. Easy to understand, easy to consume. Develop with smiles, not with tears. Developer friendly B. User would like to see all notes he created on cloud, even when he's on an airplane. He also want to add some notes and sync it with cloud later. Connectivity A. A User has relationship with his preferred Store, which has relationship with its City, which has relationship with other Users who live in this City, which ... blabla... Data relationships C. We have a LiveGame today, how we could adjust our system to fit 100.000 concurrent users? Scalable
  • 4. A E B C D REQUIREMENTS D. REALTIME COLLABORATIONS Instant response E. IMPLEMENTATIONS & DOCUMENTATIONS Developer friendly B. OFFLINE SUPPORT, WITH RE-SYNC ABILITY Connectivity A. FLEXIBLE RELATIONSHIP QUERY Data relationships C. FLEXIBLE INFRASTRUCTURES Scalable
  • 5. WHAT WE ARE DOING? REST REPRESENTATIONAL STATE TRANSFER Using API endpoints, each endpoint serves different purpose. SSE SERVER-SENT EVENTS Client keeps a long request to server, and check every time server issues messages.
  • 6. REST & SSE -F*cking simple 😎. -Hell of 1000 endpoints. -Missing or Not up-to-date documentations. -SSE lacking support, polyfills are very bad.
  • 7. A E B C D SO? D. REALTIME COLLABORATIONS Instant response E. IMPLEMENTATIONS & DOCUMENTATIONS Developer friendly B. OFFLINE SUPPORT, WITH RE-SYNC ABILITY Connectivity A. FLEXIBLE RELATIONSHIP QUERY Data relationships C. FLEXIBLE INFRASTRUCTURES Scalable NOT SUPPORTED IT HURTS NOT STABLE WE'RE ALL LAZY SPAGHETTI CODE
  • 9. Facebook We were having the same problems. Then some lazy developers created GraphQL for fun, and now it's serving 2.7 billion people. Wanna try? WHERE PEOPLE WASTE THEIR TIME
  • 10. GraphQL -Don't be fool by QL - query language -Designed for API -Query, mutation and realtime subscribe -Self documented -Don't worry, much more simple 🥰
  • 11. Definition -GraphQL Schema -Ball object has x, y, z and size -Query balls will return list of Ball -Query addBall with ballData (type Ball) as param, will return Boolean
  • 12. Definition -Easy to learn, easy to work. -Everything has Type: Enum, String, Int, Object,... -Built-in Type validation. -Mark deprecations easily. -Provide directives for dynamic queries. -From Schema to Code without pain.
  • 13. Query & Mutate data -What you ask is What you get -What you design is What you document
  • 15. Resolver - Define handler for every node of query
  • 17. A E B C D SO? D. REALTIME COLLABORATIONS Instant response E. IMPLEMENTATIONS & DOCUMENTATIONS Developer friendly B. OFFLINE SUPPORT, WITH RE-SYNC ABILITY Connectivity A. FLEXIBLE RELATIONSHIP QUERY Data relationships C. FLEXIBLE INFRASTRUCTURES Scalable OF COURSE! YEAH! EASY SURE! YOU WILL LOVE IT
  • 18. DevTools -Interactive playground to test GraphQL queries -Apollo server & client libraries -React friendly -Native support for all client platforms -Huge community support Hooks supported!
  • 19. Let's get our hands dirty We create a React application, let users play with balls. All ball data will be saved on server. (not wet) All balls are provided from Pornhub
  • 20.
  • 21. Gaio Giulio Cesare GraphQL helped me to dominate Roman politics, to become one of the greatest military minds in history, and to sleep with Cleopatra 😻 FULL STACK DEVELOPER