Skip to content

prototype: explicit deduplication clone opt-out - #438

Draft
trippyogi wants to merge 2 commits into
apollographql:mainfrom
trippyogi:investigate/skip-clone-no-dedup
Draft

prototype: explicit deduplication clone opt-out#438
trippyogi wants to merge 2 commits into
apollographql:mainfrom
trippyogi:investigate/skip-clone-no-dedup

Conversation

@trippyogi

Copy link
Copy Markdown

This is a design prototype for #433, not an upstream-ready fix.

The investigation exposed a compatibility constraint: eliminating per-consumer deep clones under high-fanout deduplication also eliminates the existing guarantee that each caller receives an independently mutable parsed body.

This branch preserves current isolation semantics by default, removes the unnecessary clone when a request-lifetime request has only one consumer, and prototypes an explicit shouldCloneParsedBodyForDeduplication() opt-out for consumers that treat parsed responses as immutable.

The remaining question is API/behavioral rather than implementation correctness: whether Apollo wants a dedicated opt-out like this, prefers the existing cloneParsedBody override, or wants a different deduplication policy/configuration surface.

Test plan

  • npm test
  • Default high-fanout still clones once per concurrent consumer
  • Opt-out yields zero clones and documents aliasing, including deduplicate-until-invalidated

@apollo-cla

Copy link
Copy Markdown

@trippyogi: Thank you for submitting a pull request! Before we can merge it, you'll need to sign the Apollo Contributor License Agreement here: https://contribute.apollographql.com/

@codesandbox-ci

codesandbox-ci Bot commented Aug 15, 2026

Copy link
Copy Markdown

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants