How to implement federation using spring boot? Doucmentation talks about only "key", what about others?

I am trying to understand how to implement federation using spring boot. I was able to understand how to use “@key” annotation using an example given here. But how do I understand the remaining? The documentation just mentions what are the other annotations available here that are supported in federation v1 and v2 but doesnt even document how to use those?

Hello :wave:
Since this information is the same for all subgraph implementations, we have documented it on our website → Federation-specific GraphQL directives

@key is the core concept behind federation as it is used to define entities and since we need to be able to somehow “enter” the subgraph to get additional info for entities we also need this extra entity resolver. All other directives are used for instrumenting the composition/query planner on how the requests should be processed - you just need to apply them to your schema but there is no code specific logic required in your subgraph. See linked docs for the details.

Reading the link you provided, trying to understand the definition of each annotation I am still having hard time to understand what each annotation is really used for. Is there an odyssey tutorial to show these annotations in action so that I can understand these better? We are a team in our org that brings in new technology so we have obligation to make our teams understand things easily, so wondering if there is any odyssey learning course that clearly defines these.

Hi there @techtreet !

We have a few courses on Odyssey, the official Apollo learning platform, that handle the topics of GraphQL and Federation in a Spring Boot application; however, these courses use the DGS framework by Netflix rather than the GraphQL Java Kickstart you’ve referenced above. (Nevertheless, I think the application of these directives should be largely similar between frameworks!)

Here’s a link to the first course, Federation with Java & DGS, which covers building a federated graph, the router, entities, and a few directives such as @key, @external and @requires.

The Apollo Education team is currently working on building our Java/Spring Boot course offering with additional topics to cover some other directives included in your screenshot. In the meantime, our JavaScript-based Voyage series provides an overview of @shareable in this lesson which could better clarify how it’s used and when. (And here’s a lesson that makes use of @inaccessible!) I hope that these resources help!