query { getAuthor(id: 5){ name posts { title author { name # this will be the same as the name above } } } } obj in Query.getAuthor will be whatever the server configuration passed for rootValue. obj in Author.name and Author.posts will be the result from getAuthor, likely an Author object from the backend. obj in Post.title and Post.author will be one item from the posts result array. obj in Author.name is the result from the above Post.author call. Basically, it’s just every resolver function being called in a nested way according to the layout of the query.