¿Qué es?
La idempotencia garantiza que una request repetida no genere efectos duplicados. Si tu sistema reintenta un envío (por timeout, error de red, etc.), el mismo mensaje no se envía dos veces.Endpoints que soportan idempotencia
| Endpoint | Idempotencia |
|---|---|
POST /messages | Soportada (header Idempotency-Key) |
| Otros endpoints | No aplica |
Cómo usarla
Incluí el headerIdempotency-Key con un valor único por operación:
Comportamiento
| Situación | Resultado |
|---|---|
| Primera request con la key | Se procesa normalmente, respuesta 201 |
| Request repetida con la misma key | Devuelve la respuesta original cacheada con header Idempotency-Replayed: true |
| Request concurrente con la misma key | Devuelve 409 IDEMPOTENCY_CONFLICT |
Respuesta repetida (replay)
Conflicto concurrente
Detalles técnicos
- TTL: 24 horas. Después de 24hs, la misma key se puede reutilizar.
- Largo máximo: 256 caracteres.
- Scope: La key es única por cuenta (tenant). Dos cuentas pueden usar la misma key sin conflicto.
Buenas prácticas
- Usá un identificador de tu sistema como key (ej:
orden-1847-confirmacion,pago-uuid-notify). - No uses valores aleatorios (eso anula el propósito).
- Si recibís un timeout, reintentá con la misma key — la respuesta original se va a devolver.