deduplicated incremental delivery
At a glance
- Identifier: #1052
- Stage: RFCX: Closed 2024-02-12T14:57:15Z
- Champion: @yaacovCR
- PR: deduplicated incremental delivery
Timeline
- 8 commits pushed on 2024-01-30:
- 2 commits pushed on 2024-01-29:
- 2 commits pushed on 2024-01-28:
- Commit pushed: typo on 2024-01-27 by @yaacovCR
- 9 commits pushed on 2024-01-26:
- use some initialization magic by @yaacovCR
- Remove GetNonEmptyParent by @yaacovCR
- this should never be previously defined, as each future is returned e… by @yaacovCR
- fix mistake when setting count by @yaacovCR
- rename {defers} to {deferredFragments} by @yaacovCR
- a child defer state is always defined unless removed here by @yaacovCR
- get rid of count and sent by @yaacovCR
- Rename GetSinglyDeferredFutures to FilterNestedFutures by @yaacovCR
- add some more magic by @yaacovCR
- 4 commits pushed on 2024-01-19:
- Commit pushed: rewrite on 2024-01-18 by @yaacovCR
- Commit pushed: fix how new defer usages are collected on 2024-01-15 by @yaacovCR
- 3 commits pushed on 2024-01-10:
- 8 commits pushed on 2024-01-09:
- Add GetPending algorithm by @yaacovCR
- fix nomenclature for GetParentAndParentDeferState by @yaacovCR
- doc: add more prose for ProcessIncrementalDigests by @yaacovCR
- fix: add missing incremental digest processing for streams by @yaacovCR
- nit: add caps for Deferred Fragment by @yaacovCR
- fix: remove unnecessary variable by @yaacovCR
- fix: change variable name to be consistent by @yaacovCR
- fix typos in GetUpdatesForDeferredResult by @yaacovCR
- Commit pushed: enhance(ResolveFieldValue): add async collection language on 2023-12-07 by @yaacovCR
- 2 commits pushed on 2023-12-06:
- 2 commits pushed on 2023-11-20:
- Commit pushed: deduplicate delivery of grouped field sets contained by parent/child … on 2023-11-09 by @yaacovCR
- Spec PR created on 2023-11-06 by yaacovCR
- Commit pushed: Correct reference to MergeSelectionSets on 2023-08-21 by @benjie
- Commit pushed: incremental delivery with deduplication of delivery and execution, al… on 2023-05-21 by @yaacovCR
- 2 commits pushed on 2023-04-28:
- Commit pushed: CollectFields does not require path or asyncRecord (#11) on 2023-01-16 by @yaacovCR
- Commit pushed: replace server with service on 2023-01-15 by @robrichard
- Commit pushed: fix typo on 2022-12-05 by @robrichard
- Commit pushed: fix parentRecord argument in ExecuteStreamField (#7) on 2022-11-29 by @yaacovCR
- Commit pushed: clarify label is not required on 2022-11-23 by @robrichard
- 2 commits pushed on 2022-11-22:
- Commit pushed: Add error handling for stream iterators (#5) on 2022-11-21 by @yaacovCR
- Commit pushed: fix typos (#6) on 2022-11-18 by @yaacovCR
- Commit pushed: remove ResolveFIeldGenerator (#4) on 2022-11-16 by @yaacovCR
- Commit pushed: small fixes (#3) on 2022-11-07 by @yaacovCR
- Commit pushed: update on hasNext on 2022-11-01 by @robrichard
- Commit pushed: link to note on should on 2022-10-12 by @robrichard
- 3 commits pushed on 2022-09-09:
- 11 commits pushed on 2022-09-08:
- Add error boundary behavior by @robrichard
- defer/stream response => payload by @robrichard
- event stream => response stream by @robrichard
- link to path section by @robrichard
- use case no dash by @robrichard
- remove "or null" by @robrichard
- add detailed incremental example by @robrichard
- update label validation rule by @robrichard
- clarify hasNext on incremental example by @robrichard
- clarify canceling of subsequent payloads by @robrichard
- Add examples for non-null cases by @robrichard
- Commit pushed: clarify null behavior of if on 2022-08-24 by @robrichard
- 2 commits pushed on 2022-08-23:
- Commit pushed: Introduce @stream. on 2022-08-18 by @robrichard
- Commit pushed: Align deferred fragment field collection with reference implementation on 2022-08-03 by @robrichard
- 3 commits pushed on 2022-06-09:
- 2 commits pushed on 2022-03-23:
- Commit pushed: Clarification on labels on 2022-03-08 by @robrichard
- Commit pushed: add validation “Defer And Stream Directive Labels Are Unique” on 2022-03-07 by @robrichard
- 2 commits pushed on 2022-02-07:
- Commit pushed: deferDirective and visitedFragments on 2022-02-02 by @robrichard
- Commit pushed: fix typo on 2022-01-21 by @robrichard
- Commit pushed: add isCompletedIterator to AsyncPayloadRecord to track completed iter… on 2021-12-30 by @robrichard
- 2 commits pushed on 2021-12-20:
- 2 commits pushed on 2021-12-06:
- Commit pushed: fix typo on 2021-11-26 by @robrichard
- Commit pushed: allow extensions only subsequent payloads on 2021-11-25 by @robrichard
- Commit pushed: clarify negative values of initialCount on 2021-11-20 by @robrichard
- Commit pushed: clarification on defer/stream requirement on 2021-11-19 by @robrichard
- Commit pushed: Update Section 3 -- Type System.md on 2021-05-15 by @robrichard
- 3 commits pushed on 2021-02-17:
Iterating on #1034 and #1026, removed mutation of internal state, event stream management, and the need for subprocedures.
YieldSubsequentPayloads now is passed the entirety of the "state," pending futures, etc, monitors for any changes to pending futures, rebuilds a new "state" representation based on any changes, yields a single result as necessary, and then recursively calls itself to yield remaining results.
[The diff to main might be helpful, but this is built on top of the amazing #742 and so the diff from that branch could be more useful.]