Brian Clozel 5c2164c5f2 Propagate cancel signal from transport to data fetchers
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
2025-03-11 10:31:53 +01:00
2025-02-11 21:40:07 +01:00
2025-02-28 14:24:39 +01:00
2025-02-18 10:10:27 +01:00
2023-03-02 12:15:08 +00:00
2025-02-28 14:24:39 +01:00
2024-10-17 16:12:36 +02:00
2020-07-23 09:40:14 +03:00
2025-01-08 21:01:00 +01:00
2024-10-17 16:12:36 +02:00

Spring for GraphQL Build status Revved up by Develocity

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.

Description
No description provided
Readme 5.9 MiB
Languages
Java 97.9%
CSS 1.2%
Shell 0.7%
HTML 0.2%