Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

preview @defer support #80

Closed
25 tasks done
BrynCooke opened this issue Jul 6, 2021 · 2 comments
Closed
25 tasks done

preview @defer support #80

BrynCooke opened this issue Jul 6, 2021 · 2 comments
Assignees

Comments

@BrynCooke
Copy link
Contributor

BrynCooke commented Jul 6, 2021

Current plan

Implement defer only for now, in the router, with some query planner modification.

@defer RFC

Related issues:

To be defined:

  • response stream format: right now the stream is apparent in all signatures, maybe we could have instead response types that holds the headers then a (generic) stream of graphql responses
  • adapting telemetry: telemetry now registers one operation per response (deferred or not), that might not be what we want in the end. But also, telemetry does not really have a concept of deferred responses
@o0Ignition0o o0Ignition0o transferred this issue from another repository Nov 4, 2021
@abernix abernix changed the title @defer and @stream support @defer support May 17, 2022
@abernix
Copy link
Member

abernix commented May 17, 2022

I've changed this issue to just be about @defer. We can still think about @stream support in that design, but the outcome might just be @defer. 😜

@bnjjj bnjjj assigned bnjjj and Geal Jun 1, 2022
@abernix abernix added this to the v1.0.0-alpha.0 milestone Aug 23, 2022
@SimonSapin SimonSapin removed this from the v1.0.0-alpha.0 milestone Aug 25, 2022
@SimonSapin SimonSapin added the 1.0 label Aug 25, 2022
@abernix abernix added this to the v1.0.0-alpha.1 milestone Aug 31, 2022
@abernix abernix changed the title @defer support preview @defer support Aug 31, 2022
@abernix
Copy link
Member

abernix commented Aug 31, 2022

This is done via a lot of tickets.

@abernix abernix closed this as completed Aug 31, 2022
abernix added a commit that referenced this issue Sep 2, 2022
…efer_support`

Following up on a tremendous amount of work tracked in
#80 - which brought various
stages of `@defer` support to the Router - this changes our designation of
its status from "Experimental" to "Preview".  It's worth noting that the
specification *just* graduated to "Stage 2 (Draft)" mode in the GraphQL
Working Group, so changes may still be expected and there are two stages
ahead.  To help things progress we've:

- We've lifted the previous requirement that users opt into defer support by
  setting `experimental_defer_support: true` in the `server` section of their
  configuration.  It is now on by default.
- The option is now called `preview_defer_support` and it can be set to
  `false` to _specifically_ opt out of it existing at all.  This might be
  desired if you would prefer that it not even show up in introspection or
  be possible to use even if a client requests it.
- Using `@defer` support _requires_ clients set the appropriate HTTP
  `accept` header to use it.  This puts the burden of understanding the
  risks of an early-preview on the clients who will need to consume the
  Router's responses. This is particularly important for clients who have
  long-lived support requirements (like native mobile apps).

  To see which headers are required, see #1648.

Closes #1673
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants