Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Entering results suffers from large delays. After some investigation I found out that the time grows significantly with the number of connected clients. I identified two independent issues in the packages we use:
(primary cause) When a result is entered we send a GraphQL subscription update to all subscribers. The relevant data should be computed once and sent once to each client. What happens in practice is that assuming N clients we would compute and send the update to everyone N times! That's a regression in absinthe
1.5.5 -> 1.6.0
, see Multiple pushes per client for subscriptions that have acontext_id
absinthe-graphql/absinthe#1064. I downgraded to1.5.5
for now.Currently, after getting the result update, each client would go and unnecessarily refetch all round data again. That's an issue in
@apollo/client
and it's been resolved in3.6.0
(FixdefaultOptions.watchQuery.fetchPolicy
not being used byuseQuery
apollographql/apollo-client#9210), so bumping the version helped.