{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/reuse-the-operation-identity-when-retrying-the-same-intent",
  "id": "MHC-D-RESEARCH-0976",
  "version": "0.1.0",
  "title": "Reuse the operation identity when retrying the same intent",
  "summary": "A retry should not introduce itself as a brand-new business request.",
  "kind": "protocol",
  "body": "An idempotency key identifies one intended operation, not merely a network attempt. Retain that key when retrying the same operation under the receiver's documented rules. A genuinely new intent needs its own identity, even when its payload happens to look identical.",
  "limits": [
    "A token field alone does nothing unless the receiver enforces it. Expired keys, changed scope and partially completed workflows need explicit handling."
  ],
  "topics": [
    "work-01-reliable-changes"
  ],
  "intents": [],
  "source_ids": [
    "RS-665898252AE611BF"
  ],
  "evidence": [
    {
      "claim": "Supported EC2 operations use client tokens to recognize repeated requests, with operation-specific scope and parameter rules.",
      "source_id": "RS-665898252AE611BF",
      "role": "supports",
      "note": "Adding a token to an arbitrary request has no protective effect unless the receiver implements the corresponding contract.",
      "locator": "Client tokens; Types of idempotency"
    }
  ],
  "use_when": [
    "An interface supports idempotency and transient failures require retries."
  ],
  "avoid_when": [
    "A token field alone does nothing unless the receiver enforces it. Expired keys, changed scope and partially completed workflows need explicit handling."
  ],
  "example": "Retrying one account-creation request preserves its key. Creating a second account deliberately uses a different key.",
  "check": "A controlled retry test produces one intended effect, and a separate intent remains possible.",
  "steps": [
    "Confirm that this operation implements deduplication and read its scope and retention rules.",
    "Store the operation key with the original parameters before sending.",
    "Reuse the key for permitted retries; reject accidental parameter changes instead of silently reusing it."
  ],
  "sources": [
    {
      "id": "RS-665898252AE611BF",
      "title": "Ensuring idempotency in Amazon EC2 API requests",
      "url": "https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html"
    }
  ],
  "relations": [
    {
      "from": "MHC-D-RESEARCH-0976",
      "to": "MHC-D-RESEARCH-0977",
      "type": "compare_with",
      "url": "/knowledge/make-the-write-conditional-on-the-version-you-reviewed"
    }
  ],
  "collections": [
    {
      "id": "RC-8F91DD82E91EA56B",
      "title": "Find the failure without creating a second incident",
      "url": "/collections/find-the-failure-without-creating-a-second-incident"
    }
  ]
}
