Learning path
GraphQL learning path: everything to study, topic by topic
Comprehensive GraphQL assessment covering schema design, type system, queries and mutations, resolvers, subscriptions, authentication and authorization, caching, pagination, rate limiting, federation, and testing strategies.
Short answer
To learn GraphQL, work through 6 modules and 22 topics in the order they build on each other. It starts with Schema & Types, then moves on to Queries & Mutations and Resolvers. Use the map as a checklist, or measure your level and study only what is missing.
What you will study
Topics are grouped by module. Open one to see its objectives and key concepts.
1 · Schema & Types4 topics
Schema Basics
Schema Definition Language (SDL), root types (Query, Mutation, Subscription), schema-first vs code-first approaches, introspection, and schema documentation
Objectives
- Write valid GraphQL schemas using SDL
- Understand the role of root types in a schema
Key concepts
- SDL syntax
- root types (Query, Mutation, Subscription)
- schema-first design
- code-first design
- introspection
- schema documentation
Scalar Types
Built-in scalar types (Int, Float, String, Boolean, ID), custom scalar types, serialization and validation, and common custom scalars (DateTime, JSON, URL)
Objectives
- Identify and use built-in GraphQL scalar types correctly
- Implement custom scalar types with proper serialization
Key concepts
- Int type
- Float type
- String type
- Boolean type
- ID type
- custom scalars
- scalar serialization
- scalar validation
Object Types
Object type definitions, field types, non-null (!) and list ([]) modifiers, enums, interfaces, unions, and type relationships
Objectives
- Design object types with proper nullability and list modifiers
- Use interfaces and unions for polymorphism
Key concepts
- object type definition
- non-null modifier (!)
- list modifier ([])
- enum types
- interfaces
- unions
- type relationships
- abstract types
Input Types
Input object types for mutations, input validation patterns, differences between input and output types, and nested input types
Objectives
- Design input types for mutations with proper validation patterns
- Distinguish between input and output type usage
Key concepts
- input keyword
- input vs output types
- nested input types
- input validation
- default values
- required vs optional fields
2 · Queries & Mutations4 topics
Query Basics
Query operations, field selection, nested queries, aliases, operation names, and query documents
Objectives
- Write GraphQL queries with proper field selection
- Use aliases and operation names effectively
Key concepts
- query operation
- field selection
- nested queries
- aliases
- operation names
- multiple queries
- query documents
- selection sets
Mutations
Mutation operations, input arguments, return types, mutation response patterns, and optimistic updates
Objectives
- Design mutations with clear input and return types
- Understand mutation execution semantics
Key concepts
- mutation operation
- mutation arguments
- mutation return types
- mutation response patterns
- sequential execution
- side effects
Arguments & Variables
Field arguments, query variables, variable types, default values, variable validation, and dynamic queries
Objectives
- Use variables to parameterize GraphQL operations
- Apply proper variable type declarations
Key concepts
- field arguments
- query variables ($)
- variable types
- default values
- required variables (!)
- variable validation
- dynamic queries
- inline arguments
Fragments
Fragment definitions, fragment spreads, inline fragments, type conditions, fragment composition, and DRY query patterns
Objectives
- Use fragments to reduce query duplication
- Apply inline fragments for polymorphic types
Key concepts
- fragment definition
- fragment spread (...)
- inline fragments
- type conditions (on)
- fragment composition
- reusable selections
- polymorphic queries
- fragment colocation
3 · Resolvers4 topics
Resolver Basics
Resolver functions, resolver signature (parent, args, context, info), default resolvers, resolver chain, and return types
Objectives
- Implement resolver functions with proper argument handling
- Understand the resolver execution chain
Key concepts
- resolver function
- resolver arguments (parent, args, context, info)
- default resolvers
- resolver chain
- resolver return types
- promise-based resolvers
- field-level resolvers
- type resolvers
Data Sources
Connecting resolvers to databases, REST APIs, microservices, data source abstraction, and ORM integration
Objectives
- Connect GraphQL resolvers to various data sources
- Abstract data access patterns for maintainability
Key concepts
- database integration
- REST API wrapping
- data source abstraction
- ORM integration
- connection pooling
- data source caching
- microservice communication
- batch loading
N+1 Problem
Understanding the N+1 query problem in GraphQL, DataLoader pattern, batching and caching, and query optimization techniques
Objectives
- Identify and resolve N+1 query problems
- Implement DataLoader for efficient batch loading
Key concepts
- N+1 query problem
- DataLoader pattern
- batching requests
- per-request caching
- batch function implementation
- DataLoader caching strategies
- query planning
- join monster/join approaches
Context & Middleware
GraphQL context object, middleware patterns, resolver wrappers, request lifecycle hooks, and plugin systems
Objectives
- Design context objects for request-scoped data
- Implement middleware patterns for cross-cutting concerns
Key concepts
- context object
- context building
- middleware patterns
- resolver wrappers
- field-level middleware
- request lifecycle
- plugin architecture
- extensions
4 · Subscriptions & Security4 topics
Subscriptions
GraphQL subscriptions, WebSocket transport, pub/sub patterns, subscription resolvers, and real-time event filtering
Objectives
- Implement real-time subscriptions with proper transport
- Design event-driven subscription resolvers
Key concepts
- subscription type
- WebSocket protocol
- pub/sub pattern
- subscription resolver
- event filtering
- subscription lifecycle
- graphql-ws protocol
- subscription scaling
Authentication
Authentication in GraphQL APIs, JWT integration, session management, token validation in context, and login/logout mutations
Objectives
- Implement authentication flows in GraphQL
- Validate tokens and inject user context
Key concepts
- JWT authentication
- token validation
- context-based auth
- login mutations
- session management
- refresh tokens
- API key authentication
- OAuth integration
Authorization
Field-level authorization, directive-based auth, role-based access control, resolver-level permissions, and authorization middleware
Objectives
- Implement field-level authorization in GraphQL
- Design scalable permission systems
Key concepts
- field-level authorization
- directive-based auth (@auth)
- role-based access control
- resolver-level permissions
- authorization middleware
- data-level authorization
- schema directives for auth
- permission composition
Error Handling
GraphQL error format, error extensions, partial data responses, error classification, and custom error types
Objectives
- Design error handling strategies for GraphQL APIs
- Implement custom error types with proper extensions
Key concepts
- GraphQL error format
- error extensions
- partial data responses
- error classification
- custom error types
- error masking
- error codes
- union-based error handling
5 · Performance3 topics
Caching
HTTP caching challenges with GraphQL, response caching, normalized caching, cache invalidation, CDN strategies, and persisted queries
Objectives
- Design caching strategies for GraphQL APIs
- Implement persisted queries for performance
Key concepts
- HTTP caching challenges
- response caching
- normalized cache
- cache invalidation
- CDN strategies
- persisted queries
- automatic persisted queries (APQ)
- cache-control directives
Pagination
Cursor-based pagination, offset pagination, Relay connection specification, edges, nodes, pageInfo, and pagination design patterns
Objectives
- Implement Relay-compliant cursor pagination
- Choose between pagination strategies based on requirements
Key concepts
- cursor-based pagination
- offset pagination
- Relay connection spec
- edges and nodes
- pageInfo type
- first/after/last/before args
- total count
- pagination performance
Rate Limiting
Query complexity analysis, depth limiting, breadth limiting, cost-based rate limiting, and query whitelisting
Objectives
- Implement query complexity analysis for rate limiting
- Design cost-based throttling for GraphQL APIs
Key concepts
- query complexity analysis
- depth limiting
- breadth limiting
- cost-based rate limiting
- query whitelisting
- static analysis
- complexity scoring
- throttling strategies
6 · Advanced Patterns3 topics
Schema Design
Schema design principles, naming conventions, Relay specification, schema evolution, deprecation, and versioning strategies
Objectives
- Design scalable and evolvable GraphQL schemas
- Apply naming conventions and Relay principles
Key concepts
- schema design principles
- naming conventions
- Relay specification
- schema evolution
- deprecation (@deprecated)
- versioning strategies
- global object identification
- schema stitching
Federation
Apollo Federation, subgraph composition, entity references, @key directive, federated types, and gateway architecture
Objectives
- Design federated GraphQL architectures
- Implement entity resolution across subgraphs
Key concepts
- Apollo Federation
- subgraph composition
- @key directive
- @external directive
- @requires directive
- entity references
- gateway architecture
- federated query planning
Testing
Unit testing resolvers, integration testing GraphQL APIs, schema validation, mocking, and end-to-end testing strategies
Objectives
- Write comprehensive tests for GraphQL APIs
- Implement testing strategies at multiple levels
Key concepts
- unit testing resolvers
- integration testing
- schema validation
- mocking resolvers
- snapshot testing
- query testing
- mutation testing
- end-to-end testing
Levels: Junior, Mid, and Senior
Explain it in your own words
Graded by AI · no account · 1 questionNo options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.
Already studying GraphQL?
The assessment measures topic by topic, and your plan skips what you already know.
Open to read. An account is only needed to be measured.
Frequently asked questions
Where should I start studying GraphQL?
Start with Schema & Types: Schema Basics, Scalar Types, and Object Types. The map orders topics by what they depend on, so each one prepares the next.
How long does a full GraphQL assessment take?
A full assessment of this path takes about 45 minutes. Study time depends on where you start; a diagnostic shows which topics you can skip.
Do I need an account to use this page?
No. The map, objectives and key concepts are open. You only need an account to be measured, get your gap by topic and receive a plan.