absinthe_graphql_ws icon indicating copy to clipboard operation
absinthe_graphql_ws copied to clipboard

feat: Add incremental delivery support for @defer and @stream directives

Open jwaldrip opened this issue 4 months ago • 0 comments

Summary

This PR adds incremental delivery support to absinthe_graphql_ws for @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

  • GraphQL-WS protocol transport for incremental delivery
  • Uses Next/Complete messages for proper protocol compliance
  • Transport extensions for handling streaming responses
  • Maintains WebSocket connection efficiency during streaming

Implementation

  • Absinthe.GraphQL.WS.Incremental.Transport - Main transport adapter
  • Absinthe.GraphQL.WS.TransportExtensions - Protocol extensions

Testing

  • Protocol compliance tests
  • Message sequencing validation
  • Error handling scenarios

Breaking Changes

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

jwaldrip avatar Sep 05 '25 20:09 jwaldrip