Idempotency
Idempotencia
Idempotencia significa que hacer la misma operación prevista otra vez tiene el mismo efecto en el servidor que hacerlo una vez. Las respuestas no tienen que ser idénticas.
Otro ejemplo
Después de que un pago expira, un comprador vuelve a intentar con la clave de idempotencia `8f2…` y el mismo hash de solicitud normalizado. El servidor devuelve el primer cargo en lugar de cobrar nuevamente. La misma clave con un monto diferente es rechazada, y las claves expiran según una política escrita.
Partes principales
- 01Identidad de operación
- 02Detección de duplicados
- 03Efecto estable y resultado almacenado
Úsalo cuando
Haz que los reintentos sean seguros para redes poco confiables, colas, llamadas de pago y sistemas que pueden entregar un mensaje al menos una vez.
No lo uses cuando
`POST` no siempre es no idempotente. Una clave de idempotencia tampoco reemplaza transacciones, autorizaciones o verificaciones de conflictos.
Nombre usado en código
HTTP method semantics and/or scoped idempotency key with request fingerprint Antes de lanzarlo
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Complete the task with Idempotencia (Idempotency). User context: Después de que un pago expira, un comprador vuelve a intentar con la clave de idempotencia `8f2…` y el mismo hash de solicitud normalizado. El servidor devuelve el primer cargo en lugar de cobrar nuevamente. La misma clave con un monto diferente es rechazada, y las claves expiran según una política escrita. Technical concept or control: Idempotencia (Idempotency). Why it fits: Haz que los reintentos sean seguros para redes poco confiables, colas, llamadas de pago y sistemas que pueden entregar un mensaje al menos una vez. Do not use it when: `POST` no siempre es no idempotente. Una clave de idempotencia tampoco reemplaza transacciones, autorizaciones o verificaciones de conflictos. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): El estándar cubre únicamente el alcance listado. No elige el estilo visual, la decisión del producto ni el ejemplo de Vibulary. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Revisa esta petición
Review how Idempotencia (Idempotency) is used now. Definition: Idempotencia significa que hacer la misma operación prevista otra vez tiene el mismo efecto en el servidor que hacerlo una vez. Las respuestas no tienen que ser idénticas. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.