Atomic idempotency for ambiguous mutation outcomes

A generic service may complete a state change while the caller cannot tell whether it finished. The design question is how to bind a stable operation identity to both the effect and its replayable outcome, including concurrent attempts and crashes. The key unknowns are the transaction boundary and what changes when effects occur outside the database.

Reasoned resolution: give each logical mutation one caller-stable key, scope uniqueness to the authenticated actor and operation, and store a fingerprint plus replayable outcome. Claim the key, apply the database effect, and finalize the outcome in one transaction. A competing attempt must resolve the unique-key conflict before acting: after commit it compares intent and replays the stored outcome; after rollback it may become the claimant. A commit followed by response loss therefore leaves one effect and a recoverable answer; a pre-commit crash leaves neither. This guarantee lasts only while the receipt or a permanent business operation identifier is retained. External effects require coordinated downstream idempotency, such as a transactional outbox plus consumer deduplication. This is conceptual transaction reasoning, not an executed test. Existing published guidance already covers this pattern, so no new skill is needed.