Принимайте clientMutationId/idempotency key, храните результат первого успеха, повторы возвращают то же; уникальные ограничения в БД на ключ.
Разбор
- Сеть ретраит POST — дубли без ключа реальны.
- Документируйте семантику повтора.
- Не все операции идемпотентны — тогда осторожные ретраи.
- Связка с outbox при сайд-эффектах.
Итог
Idempotency key на mutation защищает от дублей при ретраях.