The document discusses the evolution of web applications from monolithic server-side applications, to decoupled headless applications using REST, to the current trend of demand-driven applications. It introduces GraphQL as a query language that allows clients to request specific data from an API and receive only the required data in return. This helps address issues with over-fetching and under-fetching of data with REST APIs. The document outlines some key benefits and concepts of GraphQL such as JSON contracts, API rigidity, and versioning. It also provides examples of popular GraphQL clients and server implementations.
2. 3 Eras of Web based Applications
Monolithic
Server Side
Applications
De-Coupled
Headless
Applications
REST
Demand Driven
Applications
Demand Driven
3. C O P Y R I G H T S A P I E N T R A Z O R F I S H | C O N F I D E N T I A L 3
Whats the problem with REST
4. C O P Y R I G H T S A P I E N T R A Z O R F I S H | C O N F I D E N T I A L 4
Over Fetching & Under Fetching
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
5. C O P Y R I G H T S A P I E N T R A Z O R F I S H | C O N F I D E N T I A L 5
Agree on JSON Contracts
Frontend Developer Backend Developer
10. David Nolen
Kovas Boguta
WTH is Demand Driven Architecture?
Driven from the client side app. Clients demand their data
needs.
Server knows how to parse this demand structure
recursively, fetching all data that is needed.
Query up. Render down,
17. Server Implementations
No Language Server Libraries
1 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
18. GraphQL is NOT
! a Graph database
! a client side state management library
! Limited to React, Relay or Web
! Limited to JavaScript & Node
Not related to Facebooks Social Graph
23. GraphQL Query
Single Endpoint.
No more crazy parsing logic for JSON data
No Need for Versioning
24. 3 Types of Operations
Query
Query data by passing an empty object of fields you want data for.
Mutations
Cary out write operations on the dataset.
Subscriptions
Real-time (read-only) updates of data.