Has the definition of value type changed between federation 1 and federation 2?

Hi! I noticed that the definition of Value Type has changed between federation 1 and federation 2, am I correct?

In Federation 2, it appears that the only recognized ‘type’ is the value type, whereas in Federation 1, types such as Scalars, Objects, Interfaces, Inputs, Enums, and Unions were also considered value types.

Hello :wave:

Value types are just a name of a concept of sharing same types across different subgraphs. Federation 2 supports sharing of all GraphQL types. It expands on Federation 1 validation rules and relaxes some of the constraints there.

For more details see:

1 Like

Thanks! That makes sense.

I noticed that in Federation 2, when sharing a type across multiple subgraphs, you must use the @shareable directive. However, this is not required for other value types such as union, enum, or input. In Federation 1, there is no distinction between value types.