Skip to main content

Roles

A role lays out the practices that you (the reader) should address, such that consumers downstream of your software walk the golden path and thus avoid common downsides and pitfalls.

Pick the role that matches your responsibilities, then ensure your software or schema addresses the practices listed for that role.

Terminology

  • Organization: the entity using GraphQL to deliver experiences to employees, constituents, partners, or customers. This includes businesses, nonprofits, government agencies, and similar institutions.
  • Community: the broader GraphQL ecosystem of libraries/frameworks/tools (clients, servers, code generators, documentation, IDE integration, and other off-the-shelf resources).

Community implementers

Most of the work in the Golden Path is to ensure that off-the-shelf GraphQL software sets users up for success. Broadly we break this kind of software down into three categories:

  • Server: off-the-shelf libraries/frameworks that expose a GraphQL schema.
  • Client: off-the-shelf libraries/frameworks that issue requests to GraphQL servers and expose results to application code.
  • Tooling: supporting tools such as linters, schema diffing, codegen, language servers, and IDE integrations.

Organization implementers

Organizations (businesses, nonprofits, government agencies, and similar institutions) generally consume GraphQL software from the community, and are thus the beneficiaries of the Golden Path rather than the implementers of it.

That said, schema designers will want to set up application developers for success, so they should implement a golden path for them. Application developers should follow the path laid out before them, but we include some recommended practices for them also to support that success.

  • Schema designer: designs and evolves the schema and resolvers to meet organizational and application needs.
  • Application developer: consumes the schema to build web, mobile, desktop, and backend applications.