Skip to content

Comments

Update to new GraphQL incremental delivery format#3

Merged
dantrain merged 6 commits intomainfrom
new-response-format
Feb 15, 2026
Merged

Update to new GraphQL incremental delivery format#3
dantrain merged 6 commits intomainfrom
new-response-format

Conversation

@dantrain
Copy link
Owner

Summary

Updates to support the new GraphQL incremental delivery response format as specified in the draft @defer/@stream proposal. This is a breaking change requiring updates to client-side code.

Changes

  • Upgrade graphql to 17.0.0-alpha.9 - Uses native experimentalExecuteIncrementally instead of @graphql-tools/executor
  • New response format - Handle pending/incremental/completed arrays with ID-based tracking (replaces direct path on incremental items)
  • Updated Accept header - incrementalSpec=v0.2 replaces deferSpec=20220824
  • New processMultipartResponse utility - Exported from @remix-relay/react for client-side multipart processing
  • Relay normalization fix - Merge parent id into deferred fragments for proper store normalization

Migration

Replace custom multipart processing with the new utility:

import { processMultipartResponse } from "@remix-relay/react";

const parts = await meros(response);
for await (const payload of processMultipartResponse(parts)) {
  sink.next(payload);
}

Update Accept header to multipart/mixed; incrementalSpec=v0.2, application/json

References

@dantrain dantrain force-pushed the new-response-format branch 5 times, most recently from ddb2627 to 90a5824 Compare February 1, 2026 15:04
…v0.2)

- Upgrade graphql to 17.0.0-alpha.9
- Use native experimentalExecuteIncrementally in loader-query
- Update Accept header to use incrementalSpec=v0.2
- Handle pending/incremental/completed arrays with id tracking
- Merge parent id into deferred data for Relay normalization
@dantrain dantrain force-pushed the new-response-format branch from 90a5824 to d2fb8cd Compare February 15, 2026 13:23
@dantrain dantrain merged commit 4722ba5 into main Feb 15, 2026
@dantrain dantrain deleted the new-response-format branch February 15, 2026 13:24
This was referenced Feb 15, 2026
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.

1 participant