SystemCity
WorkspaceProblemsCanvasPricing
Sign in
S

SystemCity

AI-powered system design tutor. Learn architecture, ace interviews, build real systems.

Learn

  • Learn System Design
  • Interview Prep Guide
  • All Problems
  • Glossary
  • Compare
  • Design Canvas

Product

  • Pricing
  • Portfolio
  • Support

Legal

  • Terms
  • Privacy
  • Refunds

© 2026 SystemCity. All rights reserved.

Master system design · interview prep · 120+ problems

Back to glossary

Communication & APIs

GraphQL

A query language for APIs that lets clients request exactly the fields they need in a single request, eliminating over- and under-fetching.

In depth

GraphQL is a query language and runtime for APIs developed at Facebook in 2012. Instead of exposing many fixed-shape REST endpoints, a GraphQL server exposes a single endpoint and a typed schema. Clients send queries that declare exactly which fields they need, and the server returns only that data — no over-fetching, no under-fetching, no need for round-trips to assemble related entities.

GraphQL excels for clients with diverse data needs (mobile apps, dashboards, complex UIs) and for products that evolve quickly: changing what data the UI shows is a client-side change, not a backend release. The schema doubles as documentation and enables strong client tooling (Apollo, Relay, urql, code generation, autocompletion).

The operational reality: GraphQL pushes complexity onto the server. Each field can fan out into expensive resolvers; without DataLoader-style batching, the n+1 problem returns. Caching is harder (GET-with-query-string is replaced by POST-with-body, defeating naive HTTP caching). Authorization must be enforced at the field level, not the endpoint.

When to use

Use GraphQL when you have one backend serving many clients with different data needs, or when the UI evolves faster than the API.

Tradeoffs

GraphQL servers require careful resolver design, custom caching, query complexity limits to prevent abuse, and discipline around schema evolution.

Related terms

REST API

An architectural style for web APIs based on HTTP verbs (GET, POST, PUT, DELETE) acting on resources identified by URLs.

gRPC

A high-performance RPC framework using HTTP/2, Protocol Buffers, and code generation for type-safe, low-latency service-to-service communication.

API Gateway

A single entry point that routes external requests to internal services, handling concerns like authentication, rate limiting, and request transformation in one place.

Caching

Storing copies of frequently accessed data in fast memory so that subsequent requests can be served without recomputing or refetching.

WebSocket

A persistent, bidirectional communication channel between client and server over a single TCP connection — the standard for real-time web features.

Message Queue

A buffer that holds messages between producers and consumers, enabling asynchronous processing and decoupling of services.