Overview
GraphQL follows a layered architecture where a query from the client is executed against a schema, resolved through functions, and mapped to underlying data sources.
Core Components
- Client
- Sends queries/mutations
- Defines required data shape
- Example: iOS app using a GraphQL client
- Schema
- Defines available types, fields, and operations
- Acts as a contract between client and server
- Resolvers
- Functions that fetch/compute data for each field
- Connect schema fields to actual data sources
- Execution Engine
- Parses and validates queries
- Calls resolvers
- Constructs response
- Data Sources
- Database (SQL/NoSQL)
- REST APIs
- External services
Request Flow
- Client sends query
- Server parses query → converts to AST
- Validates query against schema
- Execution engine calls resolvers
- Resolvers fetch data from sources
- Response is assembled and returned
Example Flow
Query