-
Notifications
You must be signed in to change notification settings - Fork 324
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
Use graphql-jit for subscriptions #5468
Comments
Does this issue need to be a pre-req to #5333 ? |
Story Points: 5 Powered by Parabol |
not a pre-req, but depending on how hard the implementation of #5333 is, it might be worthwhile to do this first. pros of doing this first:
cons:
|
At the moment graphql-jit does not expose |
I've did some performance measurements and it appears there is no significant performance increase by using |
this is a really fun problem to think about because I've often wondered if we could remove graphql from the web/socket server completely. what if each websocket subscribed to its own redis pubsub channel & the graphql executor handled source & response streams & then sent the final result to the websocket server? not something we need to change anytime soon, but it's a fun problem to consider |
Since I didn't want my work go to waste I added some benchmark on graphql-jit side. Although I couldn't see any performance improvement when running our app, just looking at |
@mattkrick That sounds like a fun problem indeed. If we just move it over to the executor, we could end up with: While ideally we could just: We only need to implement the 2 magic parts. We could also pack the magic into the publishing part. Add some Redis script which finds all the subscribers + variables etc. and then sends these all over prepared to GQLExecutor1. Once we are at that stage, we could even think about refactoring some of our subscriptions to be only team or meeting dependent and not viewer dependent. This way we could resolve these subscriptions once and send the same reply to all subscribers. |
Stale issue |
Iceboxing! |
the latest version of graphql-jit supports subscriptions 🎉 zalando-incubator/graphql-jit#74
that means we don't have to have different caching strategies for subscribe & execute calls. Should relieve a few CPU cycles on our server
AC
Estimate: 4 hours
The text was updated successfully, but these errors were encountered: