Koskamo

Execution and resolver functions

Document v1 · published by Koskamo editorial · updated 2026-10-04

Original source

After a parsed document is validated, execution begins at the top-level Query, Mutation, or Subscription fields, and each field on each type is backed by a resolver function written by the server developer. In the reference implementation a resolver receives four arguments: obj (the previous object), args (the field's arguments), context (a value shared with every resolver, holding things like the logged-in user or database access), and info (field and schema details for advanced use). While a query could technically write data, mutation operations are conventionally used for side effects, and implementations are expected to execute mutation fields serially. Resolvers may be asynchronous — returning Promises, Futures, or Tasks — and GraphQL waits for them with optimal concurrency; a resolver can even return a list of Promises, each of which resolves concurrently before sub-fields continue. Many libraries let you omit trivial resolvers that just read a same-named property, and scalar coercion converts resolver output, such as internally numeric Enum values, into what the schema expects. Resolved values are collected bottom-up into a structure that mirrors the query and is sent to the client, typically as JSON. Scope: GraphQL. Reviewed October 4, 2026.

Source and provenance

Original source
graphql.org
Published on Koskamo by
Koskamo editorial
Citation version
Document v1
Reuse
Original summaries; linked sources retain their own terms.

The original source supplies the underlying information. Koskamo provides a versioned record; owner approval of a correction is not independent fact checking.