GraphQL Java Kickstart (Spring Boot) @link support

Hi there. I have a GraphQL service implemented using spring boot (spring-boot-starter-graphql). I’m looking to use it as a subgraph with Apollo Federation v2. The documentation here, Federation-compatible subgraph implementations - Apollo GraphQL Docs, indicates that critical support for the “@link” directive is missing. However, it appears that graphql-java-support does include it - federation-jvm/definitions_fed2_0.graphqls at master · apollographql/federation-jvm · GitHub. Is the documentation accurate? Am I missing something?

Also, if @link is not yet available. Will this prevent me from going forward using spring-boot?


Hello :wave:

graphql-java-kickstart is using graphql-java-tools to load the schema which currently does not support schema directives (see Support schema directives · Issue #717 · graphql-java-kickstart/graphql-java-tools · GitHub). Without the presence of @link directive, router/gateway logic will fallback to V1 behavior.

You can definitely use Spring Boot - you can continue using Kickstart (but will be using Fed v1) or you can use some other Spring Boot implementations (e.g. Netflix DGS Framework, Official Spring GraphQL project or ExpediaGroup GraphQL Kotlin (if you don’t mind Kotlin and prefer code-first solution)).


Oh, I got it. I think I was confusing graphql-java-kickstart with spring-boot-starter-graphql (Official Spring GraphQL project). Since I’m using spring-boot-starter-graphql, not graphql-java-kickstart, I should be good for Fed v2. Thanks!

P.S. I guess I should have been looking at the compatibility for Federation JVM, not GraphQL Java Kickstart.