@@ -2185,9 +2185,9 @@ directive @defer(
21852185
21862186The `@defer ` directive may be provided on a fragment spread or inline fragment
21872187to indicate that execution of the related selection set should be deferred . When
2188- a request includes the `@defer ` directive , the result may consist of multiple
2189- responses : the initial response containing all non -deferred data , while
2190- subsequent responses include deferred data .
2188+ a request includes the `@defer ` directive , it may return an _incremental stream_
2189+ consisting of an _intitial response_ containing all non -deferred data , followed
2190+ by one or more _subsequent payloads_ including the deferred data .
21912191
21922192The `@include ` and `@skip ` directives take precedence over `@defer `.
21932193
@@ -2212,11 +2212,11 @@ fragment someFragment on User {
22122212 related note below). When `false `, fragment must not be deferred . Defaults to
22132213 `true ` when omitted .
22142214- `label : String ` - An optional string literal (variables are disallowed) used
2215- by GraphQL clients to identify data from responses and associate it with the
2216- corresponding defer directive . If provided , the GraphQL service must include
2217- this label in the corresponding pending object within the response . The
2218- `label ` argument must be unique across all `@defer ` and ` @stream ` directives
2219- in the document .
2215+ by GraphQL clients to identify data in the _incremental stream_ and associate
2216+ it with the corresponding defer directive . If provided , the GraphQL service
2217+ must include this label in the corresponding pending object within the
2218+ _incremental stream_ . The `label ` argument must be unique across all `@defer `
2219+ and ` @stream ` directives in the document .
22202220
22212221### @stream
22222222
@@ -2230,7 +2230,7 @@ directive @stream(
22302230
22312231The `@stream ` directive may be provided for a field whose type incorporates a
22322232`List ` type modifier . The directive enables returning a partial list initially ,
2233- followed by additional items in subsequent responses . Should the field type
2233+ followed by additional items in subsequent payloads . Should the field type
22342234incorporate multiple `List ` type modifiers , only the outermost list is streamed .
22352235
22362236Note : The mechanism through which items are streamed is implementation -defined
@@ -2262,26 +2262,26 @@ query myQuery($shouldStream: Boolean! = true) {
22622262 is not present —it must not be streamed and all of the list items must be
22632263 included . Defaults to `true ` when omitted .
22642264- `label : String ` - An optional string literal (variables are disallowed) used
2265- by GraphQL clients to identify data from responses and associate it with the
2266- corresponding stream directive . If provided , the GraphQL service must include
2267- this label in the corresponding pending object within the response . The
2268- `label ` argument must be unique across all `@defer ` and ` @stream ` directives
2269- in the document .
2265+ by GraphQL clients to identify data in the _incremental stream_ and associate
2266+ it with the corresponding stream directive . If provided , the GraphQL service
2267+ must include this label in the corresponding pending object within the
2268+ _incremental stream_ . The `label ` argument must be unique across all `@defer `
2269+ and ` @stream ` directives in the document .
22702270
22712271Note : The
22722272[Defer And Stream Directive Labels Are Unique ](#sec-Defer-And-Stream-Directive-Labels-Are-Unique)
22732273validation rule ensures uniqueness of the values passed to `label` on both the
22742274`@defer` and `@stream` directives. Variables are disallowed in the `label`
22752275because their values may not be known during validation.
22762276
2277- Note : The ability to defer and /or stream parts of a response can have a
2278- potentially significant impact on application performance . Developers generally
2279- need clear , predictable control over their application's performance. It is
2280- highly recommended that GraphQL services honor the `@defer` and `@stream`
2281- directives on each execution. However, the specification allows advanced use
2282- cases where the service can determine that it is more performant to not defer
2283- and/or stream. Therefore, GraphQL clients _must_ be able to process a response
2277+ Note : The ability to defer and /or stream data can have a potentially significant
2278+ impact on application performance . Developers generally need clear , predictable
2279+ control over their application's performance. It is highly recommended that
2280+ GraphQL services honor the `@defer` and `@stream` directives on each execution.
2281+ However, the specification allows advanced use cases where the service can
2282+ determine that it is more performant to not defer and/or stream. Therefore,
2283+ GraphQL clients _must_ be able to process a _response_ or _incremental stream_
22842284that ignores individual `@defer` and/or `@stream` directives. This also applies
22852285to the `initialCount` argument on the `@stream` directive. Clients must be able
2286- to process a streamed response that contains more initial list items than what
2287- was specified in the `initialCount` argument.
2286+ to process a streamed field result that contains more initial list items than
2287+ what was specified in the `initialCount` argument.
0 commit comments