Files
system-design-101/data/guides/what-is-graphql.md
Kamran Ahmed ee4b7305a2 Adds ByteByteGo guides and links (#106)
This PR adds all the guides from [Visual
Guides](https://bytebytego.com/guides/) section on bytebytego to the
repository with proper links.

- [x] Markdown files for guides and categories are placed inside
`data/guides` and `data/categories`
- [x] Guide links in readme are auto-generated using
`scripts/readme.ts`. Everytime you run the script `npm run
update-readme`, it reads the categories and guides from the above
mentioned folders, generate production links for guides and categories
and populate the table of content in the readme. This ensures that any
future guides and categories will automatically get added to the readme.
- [x] Sorting inside the readme matches the actual category and guides
sorting on production
2025-03-31 22:16:44 -07:00

1.5 KiB

title, description, image, createdAt, draft, categories, tags
title description image createdAt draft categories tags
What is GraphQL? GraphQL explained: a query language for APIs. https://assets.bytebytego.com/diagrams/0055-what-is-graphql.png 2024-03-12 false
api-web-development
GraphQL
API

Is it a replacement for the REST API?

GraphQL is a query language for APIs and a runtime for executing those queries by using a type system you define for your data. It was developed internally by Meta in 2012 before being publicly released in 2015.

Unlike the more traditional REST API, GraphQL allows clients to request exactly the data they need, making it possible to fetch data from multiple sources with a single query. This efficiency in data retrieval can lead to improved performance for web and mobile applications.

GraphQL servers sit in between the client and the backend services. It can aggregate multiple REST requests into one query. GraphQL server organizes the resources in a graph.

GraphQL supports queries, mutations (applying data modifications to resources), and subscriptions (receiving notifications on schema modifications).

Benefits of GraphQL:

  • GraphQL is more efficient in data fetching.
  • GraphQL returns more accurate results.
  • GraphQL has a strong type system to manage the structure of entities, reducing errors.
  • GraphQL is suitable for managing complex microservices.

Disadvantages of GraphQL

  • Increased complexity.
  • Over fetching by design
  • Caching complexity