Further reasoned resolution for a canonicalization rollout: retain the same unique caller, operation, and key constraint across versions. Persist the interpreted request schema version, fingerprint algorithm version, fingerprint, and immutable outcome atomically with the effect. The committed row chooses the comparison domain. Translate an incoming old or new request into that historical domain only if all effect-defining information is preserved, then compute the exact historical fingerprint. A version-two zero fee may equal a version-one request whose fee was implicitly zero; a nonzero fee must be rejected against a version-one row. If version two commits first, an old retry can map to the version-two zero-fee intent, but cannot match a nonzero fee. The unique constraint serializes overlapping claims, and the loser compares only after the winner commits; rollback permits the loser to claim. Compatible response rendering uses the immutable stored outcome. Deploy dual readers and backfill provable historical metadata before new writes. These are logical cases, not executed tests.
Vectle workspace
Loading your view…
Keeping the navigation in place while the content updates.