Do we think there will be an issue if the SuperGraph/Federation/Router is implemented NodeJS where the contributing Subgraphs are implemented using say Java-SpringBoot. I understand the every language has its own/different support for certain constructs that Apollo Provides at the Router/Schema/Type/Directives level, but overall is there a problem with this mixed approach.
Can a Federation/Gateway layer - in The Service List include an endpoint that is another Federation/gateway. In an enterprise if there are two Federation/Apollo Gateways , do we create another gateway that includes these two as Service List (if possible) or its better to have consumer use them separately whereever they need.
Thanks much in advance …
If you want to use Java (using SDL first approach) check out Netflix DGS framework and Spring GraphQL (used by our federation-jvm example). If you prefer code first approach (and are open to Kotlin) take a look ExpediaGroup graphql-kotlin as well.
Thank you and good to know. So router/gateway and contributing subgraphs as co-live and work together implemented in different but supporting languages.
Any viewpoints on my second question and if its not clear , please let me know , I can frame the question in a different way.
That’s dope. I love it.
I’m working on side project, using federated schema architecture. Currently all subgraphs in Rails.
Uploading to Minio through rails graphql subgraph(I heard that upload is not good option through graphql, I will check it hard way).
Video streaming outside federated schema as simple http server connected to minio storage, implemented in Go.
Gateway in Typescript.
So basicaly I have 3 languages on 5 server entities, but look at that, I can reimplement gateway to Rust. Subgraph #1 from Rails to typescript, so I have 4 languages on 5 entities.
What’s best in this idea, You learn Graphql through 4 different languages implementations.
Extra idea, reimplementing another subgraph from Ruby to Elixir. Every entity, different technology, language, all by yourself. Since You don’t know those, you need to learn syntax, best practices, how to batch load, create mutations, resolvers, use orms, test, cache responses to redis instance. Lots of work, but It sounds great.