-
Notifications
You must be signed in to change notification settings - Fork 93
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
Add support for federation #521
Comments
Thanks Phillip, I think Federation support would be really helpful given organizations adopting microservices pattern. Especially with large organizations with varied technology stacks who want to have a single unified data graph combining multiple microservices on different technology platforms. There is already a support for federation on the JVM via apollo federation-jvm package. Probably worth looking if that can be leveraged here? |
This is about services taking part in a federation, right? Writing a federation gateway is a completely different and much bigger topic. I've read several blogs and watched several talks trying to understand esp. the difference between Schema Stitching and Federation. For me, this blog post explained it best. My ultra-short summary: Schema Stitching works with custom code in the Gateway that hooks the endpoints together. While this approach starts very simple, complexity grows exponentially, as there is a single point that has to know about all connections. Federation OTOH distributes this responsibility to the separate services, e.g. a user service only knows about the |
Maybe it would be sufficient to create a separate library like |
The correct link to start from is https://www.apollographql.com/docs/federation/federation-spec/ The managed-federation link in the description is about the advanced federation gateway in the Apollo Studio product that manages the services with a registry instead of having to list them manually before startup of the gateway. |
I found that if we really want to support federation with an extension (i.e. a library you can include, not something built directly into the server implementation), we not only need custom directives (#628 for
|
I've started some experiments and pushed them here. There are many prio A TODOs left, but it works as a PoC! I'd love to hear your feedback. |
Thanks @t1 ! I'll have a look a.s.a.p |
As mentioned in the meeting yesterday, there is one major issue open: a type used as a |
It could be possible that #312 could help to fix this last priority A todo. |
Can we maybe discuss here (again) why can we not use |
You mean instead of |
Yea, so the class needs an |
#521: initial GraphQL Federation extension
#521: don't try to add the `_entities` query without an `_Entity` union
What is current status for the federation support? Can I use it with quarkus in expiremental/alfa status on my own risk? There are still no federation quarkus extension #15386. |
It currently works as an alpha in JEE containers, but not in Quarkus. We're still working on the Quarkus Extension, but there was not much progress lately. Do you want to support? |
@t1 I would really like to help with the Quarkus extension, where can I start from? |
Maybe @phillip-kruger can give you a hint? |
I'll be honest - I am not sure. I am not sure if this would be a new extension, or build into the current one. I think the current one. So maybe start by playing around with that ? |
Thanks @phillip-kruger. @t1 @phillip-kruger Just to make sure that I understand it correctly - Also, isn't the extension resides on |
…-java-support` 2.0.5 to 2.0.6
…-java-support` 2.0.5 to 2.0.6
What's the status of this? Is there anything I can help with? |
Hi @ntkoopman ! Thanks for offering to help. As far as I know basic support is available in Quarkus. The outstaning items is getting the reactive part to work correctly (or at all). So interpret Multi/Uni and execute those on the eventloop. @t1 @jmartisk can you comment ? |
Hi everyone! |
@phillip-kruger & @ntkoopman: Sorry for not responding before. We currently don't use it in my project, so I can't invest a lot of time on this at the moment. Your summary of the current status looks quite like what I remember it to be. I actually tried to fix the reactive stuff, but gave up. I suppose my brain is just not made to work with reactive logic. I'm soooo glad that Project Loom is coming to save me 😁 @MightyPixel: That would be great. We would need to run the specified tests against our implementation. That would be an essential step forward. Maybe you can get them running (and failing)? |
Reactive should work at least Unis. |
Might be a lot of work, but let's consider support for federation
https://www.apollographql.com/docs/federation/managed-federation/overview/
The text was updated successfully, but these errors were encountered: