Skip to content

Incremental Delivery spec draft#1110

Open
robrichard wants to merge 5 commits into
graphql:mainfrom
robrichard:robrichard/defer-stream-v2
Open

Incremental Delivery spec draft#1110
robrichard wants to merge 5 commits into
graphql:mainfrom
robrichard:robrichard/defer-stream-v2

Conversation

@robrichard

Copy link
Copy Markdown
Contributor

Spec draft of @defer based on the response format in graphql/defer-stream-wg#69, with no duplication of fields. @stream will be added soon.

Please keep discussion limited to specifics on how the spec text is written. There is a dedicated discussion forum for questions, feedback, and comments on defer & stream: https://github.com/graphql/defer-stream-wg/discussions

@netlify

netlify Bot commented Sep 18, 2024

Copy link
Copy Markdown

Deploy Preview for graphql-spec-draft ready!

Name Link
🔨 Latest commit f5f26b0
🔍 Latest deploy log https://app.netlify.com/projects/graphql-spec-draft/deploys/6a300b38d305d1000866f673
😎 Deploy Preview https://deploy-preview-1110--graphql-spec-draft.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@owen-zora

Copy link
Copy Markdown

Hi @robrichard , do you have any expected timeline for this feature? We are really excited to have this feature for our product!

Comment thread spec/Section 6 -- Execution.md Outdated
@benjie

benjie commented Jun 12, 2025

Copy link
Copy Markdown
Member

The previous spec edits reached RFC2, should this also be RFC2?

Comment thread spec/Section 7 -- Response.md Outdated

- If {serial} is not provided, initialize it to {false}.
- Let {groupedFieldSet} and {newDeferUsages} be the result of
{CollectFields(objectType, selectionSet, variableValues)}.

@michaelstaib michaelstaib Feb 2, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new CollectFields requires a deferUsage argument ... this should be null for the initial call to CollectFields.

Suggested change
{CollectFields(objectType, selectionSet, variableValues)}.
{CollectFields(objectType, selectionSet, null, variableValues)}.

Also in this case its not clear while reading what null actually is for so maybe it should be declared first?

@leebyron leebyron added 📄 Draft (RFC 2) RFC Stage 2 (See CONTRIBUTING.md) and removed 💡 Proposal (RFC 1) RFC Stage 1 (See CONTRIBUTING.md) labels Mar 5, 2026
@leebyron

leebyron commented Mar 5, 2026

Copy link
Copy Markdown
Collaborator

Moving this to RFC2, draft.

More work to do for sure, but we're waaaaay closer to the end than the start and I believe we've fully understood the problem domain and are narrowing in on details now.

Massive props and excellent work to @robrichard for his continued championship and work on this RFC

robrichard and others added 3 commits June 4, 2026 14:43
* Spec edits for incremental delivery, Section 3

* re-order arguments

* Apply suggestions from code review

Co-authored-by: Benjie <benjie@jemjie.com>

* Address PR feedback

* Address PR feedback

* Update spec/Section 3 -- Type System.md

Co-authored-by: Benoit 'BoD' Lubek <BoD@JRAF.org>

* Update response terminology

* Use new execution result terminology

* Update order of arguments on @stream

* field error -> execution error

* update argument order in examples

* _subsequent execution result_ > _execution update result_

* Update note to normative section

* fix title and link

* review feedback

---------

Co-authored-by: Benjie <benjie@jemjie.com>
Co-authored-by: Benoit 'BoD' Lubek <BoD@JRAF.org>
…pendix (graphql#1203)

* Spec edits for incremental delivery, Examples

* Spec edits for incremental delivery, Section 7 only

* fix typos

* Update to address feedback in exampled appendix

* Update terminology

Initial Execution Result > Initial Incremental Stream Result
Execution Update Result > Incremental Stream Update Result

* PR feedback

* allow hasNext: false on initial result

* pending is must on initial stream result

* value => payload when describing what is yielded by a stream

* Update description of _initial incremental stream result_ & _incremental stream update result_

* fix incorrect term

* PR Feedback

* Pending Result -> Incremental Pending Notice

* Completed Result -> Incremental Completion Notice
* Spec edits for incremental delivery, Validation

* Update spec/Section 5 -- Validation.md

Co-authored-by: Yaacov Rydzinski  <yaacovCR@gmail.com>

* Update labels are unique rule to account for null value of label

* PR feedback

* Rewrite Valid Root Field rule

* review fixes

* rewrite Valid Operations rule

* review fixes

---------

Co-authored-by: Yaacov Rydzinski <yaacovCR@gmail.com>
@robrichard robrichard force-pushed the robrichard/defer-stream-v2 branch 2 times, most recently from 89456a2 to e245077 Compare June 4, 2026 18:47
@robrichard robrichard force-pushed the robrichard/defer-stream-v2 branch from e245077 to f5f26b0 Compare June 15, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📄 Draft (RFC 2) RFC Stage 2 (See CONTRIBUTING.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants