Skip to content

Conversation

yaacovCR
Copy link
Contributor

@yaacovCR yaacovCR commented Jul 12, 2023

supersedes #1026

This version sets up an Incremental Publisher Record that includes:
(a) an Execution Event Queue input stream on the and
(b) a Subsequent Result output stream.

No mutations happen outside the algorithms that define any records.

With the following caveats:

  1. The event queue is not considered to be "mutated" when different sub-algorithms push events into it.
  2. The CreateIncrementalPublisher() algorithm is where the magic happens, a long algorithm where the Execution Event Handler and lazily executed Subsequent Result stream are managed concurrently. To increase readability, several subprocedures/macros/inner functions are defined that have access to the variables defined within the entire algorithm.

robrichard and others added 30 commits January 15, 2023 12:15
Update Section 3 -- Type System.md

Update Section 3 -- Type System.md

Update Section 3 -- Type System.md

Update Section 6 -- Execution.md

Update Section 6 -- Execution.md

Update Section 6 -- Execution.md

Update Section 6 -- Execution.md

Update Section 6 -- Execution.md

Update Section 6 -- Execution.md

Update Section 6 -- Execution.md

Update Section 6 -- Execution.md

Update Section 6 -- Execution.md

Amend changes

change initial_count to initialCount

add payload fields to Response section

add stream validation for overlapping fields

spelling updates

add note about re-execution

add note about final payloads

label is optional

fix build

Update ExecuteQuery with hasNext logic

fix spelling

fix spaces

Update execution to add defer/stream to mutations and subscriptions

clarify stream records

Apply suggestions from code review

Co-authored-by: Benjie Gillam <[email protected]>

missing bracket

Update spec/Section 7 -- Response.md

Co-authored-by: Benjie Gillam <[email protected]>

clarify line about stream record iterator

update visitedFragments with defer

Updates to consolidate subsequent payload logic for queries, mutations, and subscriptions

Apply suggestions from code review

Co-authored-by: Benjie Gillam <[email protected]>

address review feedback

Add handling of termination signal

more formatting

fix spelling

Add assertion for record type

add "Stream Directives Are Used On List Fields" validation rule

Add defaultValue to @stream initialCount

Update spec/Section 5 -- Validation.md

Co-authored-by: Benjie Gillam <[email protected]>

# Conflicts:
#	spec/Section 3 -- Type System.md
#	spec/Section 5 -- Validation.md
#	spec/Section 6 -- Execution.md
#	spec/Section 7 -- Response.md
# Conflicts:
#	spec/Section 6 -- Execution.md
# Conflicts:
#	spec/Section 3 -- Type System.md
# Conflicts:
#	spec/Section 3 -- Type System.md
# Conflicts:
#	spec/Section 3 -- Type System.md
# Conflicts:
#	spec/Section 3 -- Type System.md
# Conflicts:
#	spec/Section 7 -- Response.md
# Conflicts:
#	spec/Section 7 -- Response.md
# Conflicts:
#	spec/Section 3 -- Type System.md
#	spec/Section 6 -- Execution.md
# Conflicts:
#	spec/Section 7 -- Response.md
# Conflicts:
#	spec/Section 6 -- Execution.md
# Conflicts:
#	spec/Section 6 -- Execution.md
# Conflicts:
#	spec/Section 6 -- Execution.md
…ators

# Conflicts:
#	spec/Section 6 -- Execution.md
@yaacovCR yaacovCR force-pushed the deduplicate2 branch 4 times, most recently from 805ef0a to 5f204c2 Compare July 16, 2023 10:35
yaacovCR added a commit to yaacovCR/graphql-js that referenced this pull request Jul 16, 2023
@yaacovCR yaacovCR force-pushed the deduplicate2 branch 10 times, most recently from d337917 to f6a36c8 Compare July 18, 2023 18:36
@yaacovCR yaacovCR force-pushed the deduplicate2 branch 5 times, most recently from 7f6c04d to 4e80aaa Compare September 28, 2023 19:16
only the Incremental Publisher subroutines need to maintain records
@yaacovCR
Copy link
Contributor Author

yaacovCR commented Nov 7, 2023

Closing in favor of #1052

@yaacovCR yaacovCR closed this Nov 7, 2023
@benjie benjie added the 💭 Strawman (RFC 0) RFC Stage 0 (See CONTRIBUTING.md) label Nov 27, 2023
@benjie benjie added the 🌱 Superseded (RFC X) RFC Stage X (See CONTRIBUTING.md) as it has been replaced by a newer proposal label Jun 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💭 Strawman (RFC 0) RFC Stage 0 (See CONTRIBUTING.md) 🌱 Superseded (RFC X) RFC Stage X (See CONTRIBUTING.md) as it has been replaced by a newer proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants