Skip to content

Instantly share code, notes, and snippets.

@cometkim
Last active July 9, 2024 03:47

Revisions

  1. cometkim revised this gist May 14, 2024. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions cfs-streaming-graphql.md
    Original file line number Diff line number Diff line change
    @@ -3,13 +3,13 @@
    ## Topics

    1. Design format as a compact binary representation of the GraphQL [trusted documents](https://benjie.dev/graphql/trusted-documents)
    - Codec should interface as the [Streams API](https://developer.mozilla.org/ko/docs/Web/API/Streams_API)
    - It matches the resolvers' execution order
    - The decoder should interface as a [ReadableStream](https://developer.mozilla.org/ko/docs/Web/API/ReadableStream)
    - It aligns the execution order of resolvers ahead-of-time
    2. Pipe-able `execute` which compatible with exsting GraphQL resolvers
    - So it can be `unpack(docs).pipe(executeStream)`
    3. Accepting the stream from the client
    - Wire format
    - Runtime semantic (similar to defer/stream, data-masking as default behavior)
    - It should support e.g `unpack(docs).pipe(executeStream)`
    3. Implement stream acceptance from the client
    - Define a proper wire format (usable as stream)
    - Establish client runtime semantics (similar to defer/stream, with data-masking as the default behavior)

    ## Goals

  2. cometkim renamed this gist May 13, 2024. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  3. cometkim created this gist May 13, 2024.
    18 changes: 18 additions & 0 deletions cfs-streaming-graphql
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,18 @@
    # Call for study: Streaming runtime for GraphQL

    ## Topics

    1. Design format as a compact binary representation of the GraphQL [trusted documents](https://benjie.dev/graphql/trusted-documents)
    - Codec should interface as the [Streams API](https://developer.mozilla.org/ko/docs/Web/API/Streams_API)
    - It matches the resolvers' execution order
    2. Pipe-able `execute` which compatible with exsting GraphQL resolvers
    - So it can be `unpack(docs).pipe(executeStream)`
    3. Accepting the stream from the client
    - Wire format
    - Runtime semantic (similar to defer/stream, data-masking as default behavior)

    ## Goals

    - End-to-end demo application
    - Exploring possibilities for framework integration
    - Share results at [GraphQLConf 2024](https://graphql.org/conf/2024/)