For fields that are nullable, it is possible that the merge algorithm will encounter some destinations that are null. It makes sense to skip those fields.
For example:
# Service A
type Gizmo {
id: ID!
details: GizmoDetails
}
type GizmoDetails {
creator: Person!
}
type Person @boundary {
id: ID!
}
type Query {
gizmos: [Gizmo!]!
}
# Service B
type Person @boundary {
id: ID!
name: String!
}
type Query {
person(id: ID!): Person @boundary
}
For fields that are nullable, it is possible that the merge algorithm will encounter some destinations that are
null
. It makes sense to skip those fields.For example:
with results like:
The merge algorithm would have expected to be able to walk down the
details
,creator
path onGIZMO2
.