Prior to this commit, a WebSocket/SSE client disconnecting from the data stream would cause a CANCEL signal to be sent to upstream publishers. This signal would flow from the transport layer up to the `ExecutionGraphQlService`. Because the `GraphQL` engine itself relies on `CompletableFuture`, the CANCEL signal would not flow through and reactive data fetchers would not receive it. This means that costly reactive operations would not be cancelled and this could cause write failures as publishers would still produce values. This commit adds at the service level a Reactor `Sink` to the `GraphQLContext` that can be picked up by the `ContextDataFetcherDecorator` when decorating reactive data fetchers. This allows us to manually cancel publishers when the CANCEL signal is received at the transport level. Fixes gh-1149
Spring for GraphQL

GraphQL support for Spring applications with GraphQL Java.
Code of Conduct
This project is governed by the Spring Code of Conduct. By participating, you are expected to uphold this code of conduct. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.
Contributing
All commits must include a Signed-off-by trailer at the end of each commit message to indicate that the contributor agrees to the Developer Certificate of Origin. For additional details, please refer to the blog post Hello DCO, Goodbye CLA: Simplifying Contributions to Spring.
Documentation
This project has reference documentation (published and source), an API reference. There are samples in the 1.0.x branch that will be moved out into a separate repository.
Stay in Touch
Follow @SpringCentral.
Getting Support
Check out the Spring GraphQL tags on Stack Overflow. Commercial support is available too.
License
This project is released under version 2.0 of the Apache License.