Interface задаёт общий набор полей для нескольких типов; union — набор возможных object types без общих полей обязательных. На клиенте используют inline fragments с ... on Type.
Разбор
node интерфейсы / Relay-стиль часто на interface.
- Union удобен для результатов поиска разных сущностей.
__typename помогает различить тип.
- Резолв concrete type — через
__resolveType.
Итог
Interface/union моделируют полиморфизм в схеме.