Hello
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.