Ответ 1
Технически любой запрос GraphQL может быть реализован, чтобы вызвать запись данных. Но существует соглашение, что любые операции, вызывающие запись, следует отправлять явно с помощью мутации.
Помимо различий в семантике, есть одно важное техническое отличие:
Поля Query
могут выполняться параллельно механизмом GraphQL, в то время как поля верхнего уровня Mutation
ДОЛЖНЫ выполняться последовательно в соответствии со спецификацией:
Если операция является мутацией, то результатом операции является результат выполнения выбора верхнего уровня мутаций, установленного для типа корневого объекта мутации. Этот набор должен выполняться последовательно.
Ожидается, что поля верхнего уровня в операции мутации оказывают побочные эффекты на базовую систему данных. Последовательное выполнение предоставленных мутаций обеспечивает защиту от расы во время этих побочных эффектов.
Источник: https://graphql.github.io/graphql-spec/draft/#sec-Mutation