absinthe_plug icon indicating copy to clipboard operation
absinthe_plug copied to clipboard

feat: Add Server-Sent Events transport for incremental delivery

Open jwaldrip opened this issue 4 months ago • 0 comments

Summary

This PR adds Server-Sent Events (SSE) transport support to absinthe_plug for incremental delivery 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

  • Server-Sent Events (SSE) adapter for HTTP streaming
  • Multipart response format support
  • Proper chunked transfer encoding
  • Graceful connection handling

Implementation

  • Absinthe.Plug.Incremental.SSE - SSE transport adapter
  • Event stream formatting
  • Connection lifecycle management

Testing

  • SSE protocol compliance
  • Chunked encoding validation
  • Connection recovery scenarios

Breaking Changes

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

jwaldrip avatar Sep 05 '25 20:09 jwaldrip