taking control of your data with graphql
TRANSCRIPT
![Page 1: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/1.jpg)
Taking Control of your Data with GraphQL
Vinci Rufus
@areai51
Shafeeq Ur Rahman
@shafeeqonline
XT - SapientRazorfish
![Page 2: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/2.jpg)
Relational Databases
![Page 3: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/3.jpg)
Multiple Databases & Services
![Page 4: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/4.jpg)
Web Services – SOAP / REST
![Page 5: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/5.jpg)
Problems with Web Services
The Power of Positive Thinking
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porttitor, purus quis ultricies rutrum, erat nisl facilisis erat, in maximus massa libero nec ipsum. Cras eget leo sed est scelerisque sodales vel eget justo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean feugiat ante id bibendum imperdiet. Nunc gravida mollis est, nec tincidunt diam sodales ultricies. Etiam consequat lobortis tellus, eu pretium dui lacinia ac. Phasellus faucibus eros in luctus tempor. Vestibulum vel ultrices orci. Nullam in augue libero. Nam dapibus velit nec pellentesque porttitor.
Author - John Doe
5 Comments - View All
???
![Page 6: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/6.jpg)
Summarizing our Pain
• Over fetching or Under fetching data.
• API Rigidity leading to bloat.
• Inconsistent feature set between desktop and mobile.
• Multiple Requests to generate a single view.
• Writing and updating the Documentation.
• API Versioning
• http://example.com/api/v2.2/customers/1234
• http://example.com/api/v2.0/customers/1234
• http://example.com/api/v2/customers/1234
• http://example.com/api/v1.1/customers/1234
• http://example.com/api/v1/customers/1234
![Page 7: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/7.jpg)
Demand Driven Architecture
-David Nolen
![Page 8: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/8.jpg)
GraphQL to the Rescue
![Page 9: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/9.jpg)
GraphQL is a query language for your API, and a server-side runtime for executing queries by using a
type system you define for your data.
GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
![Page 10: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/10.jpg)
2012Internal
Development at Facebook
2015Open sourced
Sep 2016Deemed
Production Ready
Evolution
![Page 11: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/11.jpg)
Popular Brands using GraphQL
![Page 12: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/12.jpg)
GraphQL Specifications
![Page 13: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/13.jpg)
Implementations
No Language Server Libraries1 JavaScript GraphQL.js, express-graphql, Apollo Server
2 Ruby Graphql-ruby
3 Python Graphene
4 Scala Sangria
5 Java Graphql-java
6 Clojure Graphql-clj
7 Go Lang Graphql-gp , graphql-relay-go
8 PHP Graphql-php , graphql-relay-php
9 C# / .Net Graphql-dotnet, graphql-net
10 Elixir Absinthe, graphql-elixir
![Page 14: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/14.jpg)
GraphQL Clients
Relaylokka
![Page 15: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/15.jpg)
GaphQL topology
GraphQL
PIM OMS Inventory RDBMS
Microservices
![Page 16: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/16.jpg)
graphQL Query
• No more crazy parsing logic for JSON data
• No specific endpoints for each client
• No Need for Versioning
![Page 17: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/17.jpg)
GraphiQL
![Page 18: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/18.jpg)
GraphQL Schema
![Page 19: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/19.jpg)
Demo
![Page 20: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/20.jpg)
Schemas & TypesType SystemScalar TypesObject Types and FieldsThe Query and Mutation TypesEnumeration TypesLists and Non-Null
![Page 21: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/21.jpg)
![Page 22: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/22.jpg)
Using GraphQL using react
![Page 23: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/23.jpg)
RELAY
![Page 24: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/24.jpg)
`
![Page 25: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/25.jpg)
What’s coming Next?
![Page 26: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/26.jpg)
Two areas of Focus
• Prioritize what data needs to come first
• Real-time data
![Page 27: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/27.jpg)
GraphQL Batch
![Page 28: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/28.jpg)
@defer
![Page 29: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/29.jpg)
Live Updates
![Page 30: Taking Control of your Data with GraphQL](https://reader033.vdocument.in/reader033/viewer/2022052606/587005351a28ab427f8b5da3/html5/thumbnails/30.jpg)
Thank You
Vinci Rufus
@areai51
Shafeeq Ur Rahman
@shafeeqonline
www.github.com/pagesource/twitter-graphql