Skip to content

feat: Add incremental delivery support for Relay connections#213

Closed
jwaldrip wants to merge 6 commits intoabsinthe-graphql:mainfrom
gigsmart:gigmart/defer-stream-incremental
Closed

feat: Add incremental delivery support for Relay connections#213
jwaldrip wants to merge 6 commits intoabsinthe-graphql:mainfrom
gigsmart:gigmart/defer-stream-incremental

Conversation

@jwaldrip
Copy link
Copy Markdown

@jwaldrip jwaldrip commented Sep 5, 2025

Summary

This PR adds incremental delivery support to absinthe_relay for streaming Relay connections with @defer and @stream directives.

⚠️ DEPENDENCY NOTICE

This PR depends on gigsmart/absinthe#gigmart/defer-stream-incremental
The main absinthe package must be merged first before this PR can be merged.

Features

  • Stream edges incrementally while maintaining cursor consistency
  • Compatible with forward and backward pagination
  • Maintains proper connection structure during streaming
  • Preserves pageInfo accuracy throughout streaming

Implementation

  • Absinthe.Relay.Incremental.Connection - Streaming connection support
  • Cursor consistency management
  • Edge batching for efficient delivery

Testing

  • Pagination consistency tests
  • Cursor ordering validation
  • Connection structure integrity

Breaking Changes

None - incremental delivery is opt-in and backward compatible.

jwaldrip and others added 4 commits September 5, 2025 14:43
Implements streaming support for Relay pagination:
- Stream edges incrementally while maintaining cursor consistency
- Compatible with forward and backward pagination
- Maintains proper connection structure during streaming

docs: Add comprehensive Relay incremental delivery documentation

- Relay connection streaming guide
- Cursor consistency documentation
- Client integration examples (React, Relay Modern)
- Performance optimization strategies

DEPENDS ON: absinthe package defer-stream-incremental branch must be merged first

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…y testing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…very

Point to gigsmart/absinthe branch gigmart/defer-stream-incremental
for testing the @defer and @stream directive implementation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Update installation dependencies in README_INCREMENTAL.md to point to the
remote git repositories instead of hex packages for testing incremental
delivery features.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@jwaldrip jwaldrip force-pushed the gigmart/defer-stream-incremental branch from 30c4e58 to 2494edb Compare September 5, 2025 21:42
jwaldrip and others added 2 commits September 5, 2025 16:27
Move incremental delivery content from temporary README_INCREMENTAL.md
into the main README.md file. Remove temporary file and properly document
the Relay incremental delivery features.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@jwaldrip
Copy link
Copy Markdown
Author

jwaldrip commented Feb 6, 2026

Checking in on incremental delivery support for Relay connections. This is a companion to absinthe#1377. Any feedback or concerns?

@jwaldrip
Copy link
Copy Markdown
Author

jwaldrip commented Feb 9, 2026

Closing in favor of #214 (defer-stream-incremental-clean), which has the same feature code with better-organized documentation. The clean branch has been merged into gigsmart/main.

@jwaldrip jwaldrip closed this Feb 9, 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