friatech / lilo

Lilo is a super-fast, easy-to-use, configurable GraphQL stitching library
Apache License 2.0
38 stars 3 forks source link

Subscription Support #26

Open firatkucuk opened 1 year ago

firatkucuk commented 1 year ago

Supporting end to end graphql subscription.

rollinglaughter commented 1 year ago

When will this be published?

Survival1sm commented 1 year ago

I am also looking for a stitching library that supports subscriptions, has any new progress been made on this front?

firatkucuk commented 1 year ago

Sorry people, This took so much time than I anticipated. I am still working on it. Please subscribe to the issue for further notifications.

firatkucuk commented 1 year ago

Good news, MVP is completed. I am working on polishing and some stability issues. I am expecting it will be released really soon.

Survival1sm commented 12 months ago

Good news, MVP is completed. I am working on polishing and some stability issues. I am expecting it will be released really soon.

Looking forward to this release, any updates on when you expect it may happen?

firatkucuk commented 12 months ago

@Survival1sm I have no excuses :see_no_evil: I was procrastinating. I have more time nowadays. I will work on it. PR is almost complete, I was working on a better API design and stability. It seems the configuration will be a little bit complex maybe I need to create a spring library for that one. Also, I want to hear from your tech stack. So I can come up with better solutions.

Survival1sm commented 12 months ago

@firatkucuk We are on spring cloud gateway with a mixture of rest/websocket and graphql/subscription microservices. Consul is used as our service discovery mechanism. I plan to replace graphql-orchestrator in favor of lilo in my project (https://github.com/Survival1sm/spring-cloud-gateway-graphql-lace), which leverages consul to automatically configure and expose the stitched endpoint for registered graphql services.

firatkucuk commented 11 months ago

Hello people, A long-awaited subscription feature has been added. 319 files changed. Subscription configuration is a little bit complex because of the framework-agnostic nature of Lilo. That's why I have created a new library lilo-spring to make it easy to use. If you want to use it on Quarkus or other web frameworks, we need to create libraries for them. Eventually, we will create but for now, the main focus is Spring.

Please try to use it. I won't close this issue until all questions related to this issue have been resolved.

rollinglaughter commented 11 months ago

Could you explain the purpose of the websocketwrapper class? Can we not pass the native session directly?

firatkucuk commented 11 months ago

@rollinglaughter, WebSocketSessionWrapper class is basically a WebSocket Session but Lilo should be framework agnostic. That's why we need an adapter class or a wrapper for framework-specific sessions. If you're using spring I strongly suggest you use the new lilo-spring library. If you are using another framework I can work on an example of your framework.

firatkucuk commented 3 months ago

I am closing this issue since we haven't got any negative feedback so far. Feel free to open it again.