Один operation ID должен соответствовать одному неизменному набору параметров. Повтор с другим amount нужно отклонять как конфликт, а не считать новой операцией.
Как строить ключ идемпотентности для операции, если пришли запросы с одним operation ID, но разными amount?
Один operation ID должен соответствовать одному неизменному набору параметров. Повтор с другим amount нужно отклонять как конфликт, а не считать новой операцией.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Один operation ID должен соответствовать одному неизменному набору параметров. Повтор с другим amount нужно отклонять как конфликт, а не считать новой операцией.
Сохраните ключ в области пользователя/операции вместе с нормализованными значимыми параметрами или их отпечатком. При повторе сравните их и верните сохранённый результат только при совпадении. Включение amount в уникальный ключ позволило бы выполнить два списания под одним ID. Проверка и создание записи должны быть атомарны, с учётом состояния выполняющейся операции.