EXACT REPLAY · CONFLICT CLOSED

Идемпотентность команд

Idempotency-Key обозначает одну логическую mutation. Точный replay возвращает committed snapshot; тот же key с изменённым canonical input завершается 409 и не перезаписывает исходный результат.

Граница выполнения
Tenant-scoped durable command identity
Exact replay and conflict detection
РЕАЛИЗОВАНО
Контракты и исходные файлы

OpenAPI, схемы и примеры для скачивания.

Четыре обязательных правила

  1. Один key — одна команда

    Создайте стабильный key до первого network attempt и храните его с canonical request.

  2. Повторяйте exact bytes/semantics

    После timeout не меняйте protected fields, пока не получили committed result или reconciliation outcome.

  3. Считайте 409 конфликтом caller state

    Не обходите конфликт новым key: сначала найдите исходную команду и расхождение.

  4. Читайте replay evidence

    Используйте Idempotency-Replayed и correlation headers, объявленные конкретной операцией.

Exact retry

Повтор той же mutationbash
curl -X POST http://localhost:8080/v1/eligibility/evaluations \
  -H "Authorization: Bearer ${CERTARAIL_API_KEY}" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: bank-order-000001" \
  --data-binary @request.json

Ожидаемые outcomes

Idempotency outcomes
СитуацияРезультат
Первый valid requestCommit resource/result и idempotency evidence
Тот же key + тот же canonical inputВернуть исходный committed snapshot
Тот же key + изменённый protected input409 conflict, fail closed
Timeout до ответаПовторить тот же key/input; не предполагать отсутствие commit

Нашли неточность?

Участники private repository могут предложить правку через reviewed pull request. Остальные пользователи — отправить техническое сообщение без credentials и чувствительных данных.