Не про роли, а про пермишенны речь) сейчас, бизнесдомен сильно изменен, потому может не сильно логичной задача выглядеть, в нашем домене все красиво) есть сайт со статьями, у статьи есть автор. У редактора по определенной теме и стране (скажем спорт, Россия) есть определенные права для статьи (удалить изменить). Статьи могут видеть только фоловеры (автора или темы+страны) + рейтинг (18+,0+). Может еще несколько ролей, с такими же сложными связями, и не являющимися ролями в приложении, но ролями по отношению к сущности "статья", и в нашем домене чтоб высчитать некоторые пермишены нужно в некоторых случая до 5 джоинов делать. Так вот есть query в gql, Articles{items:{ID, name, permissions:{...} }} тут нет проблемы с ID и name, мы их выбираем с помощью даталодера, но в том же запросе тянуть пермишены очень тяжело по производительности, и тянуть из все в одном запросе тоже, чаще всего понадобится 2-3 из 10. Зачем вообще они нужны в gql? Изза сложных правил их расчета, лучше их один раз описать в сервисе на бэке и отдавать на фронт, чтоб при изменении ничего не ломалось, и не надо было сложных расчетов на фронте. В ресте скорее всего бы в 1-2 запроса к базе это все делалось, изза того что не нужна эта универсальность gql.