The map
- Not started
- In progress
- Done
- Builds on
- 01The contractTypes, operations, the schema0/2
- 02ExecutionResolvers, batching, errors, pages0/4
- 03In productionWho may see it, caching, limits0/3
- 04At scaleMany teams, many years, other styles0/3
- 05Next: system designSame ideas, at service scale
- Backend for frontendLibrary ↗A GraphQL server in front of several services is often a backend for frontend with a typed query language. The library topic covers when one gateway per client beats one shared graph.
- Cursor paginationLibrary ↗GraphQL connections are cursor pagination with a fixed shape. The library topic explains why cursors beat offsets underneath.
- Rate limitingLibrary ↗One GraphQL request can cost one row or a million. Rate limiting by query cost rather than by request count is the GraphQL version of this pattern.
- API gatewayLibrary ↗A federation router is an API gateway that also plans queries across services. The library topic covers what any gateway must handle: auth, limits, routing, observability.
- Contract testingLibrary ↗Clients depend on exact fields. Checking each client's operations against a proposed schema before deploying is contract testing with the schema as the contract.
The language and type system follow the GraphQL specification (the October 2021 edition, the September 2025 edition that succeeds it, and the current working draft). Examples of server code are plain JavaScript without libraries, so you can run them and see the execution model; real servers such as graphql-js add parsing, validation and much more around the same ideas. The SQL pagination and JavaScript promise topics are prerequisites from other paths and share their progress.
Where this path leads
- APIs and the edge →Shape what clients see, and keep the contract honest as both sides change.
- Backend engineer: from a request to a service you can run →What a backend engineer works with every day: the runtime under the service, a request's path through the framework, the database connections and transactions it borrows, the tests that prove it works across boundaries, and what changes when a language model is one of your dependencies.