# Ruta 03 · Sesión 05 — Eventos y callbacks: autenticidad, repetición e idempotencia

Uso educativo: caso ficticio de reserva de espacios. Todos los actores y datos son ejemplos.

## Objetivo

Definir un contrato de eventos y un tratamiento de reintentos con autenticidad e idempotencia.

## Escenario

E-01 confirma entrega del aviso de R-A. El productor reintenta cuando no recibe respuesta y dos consumidores pueden recibir el mismo evento. Ninguno tiene permiso de aprobar reservas.

## Trabajo opcional

1. Identifica productor, consumidor y efecto autorizado.
2. Especifica campos autenticados y resolución confiable de claves.
3. Elige ventana temporal y clave de deduplicación.
4. Describe fallos entre persistencia y respuesta; agrega cinco pruebas adversas.

## Plantilla

| Campo o decisión | Valor ficticio | Validación | Evidencia |
|---|---|---|---|
| Productor | servicio-avisos | Identidad y clave autorizadas | Completar |
| Evento | E-01, aviso.entregado, R-A | Esquema y efecto permitido | Completar |
| Frescura | 5 minutos (didáctico) | Tiempo firmado y tolerancia de reloj | Completar |
| Deduplicación | productor + eventId + huella | Registro duradero y concurrencia | Completar |

## Solución orientativa

- Validar emisor, autenticidad, esquema y frescura antes de aceptar E-01.
- Usar productor más eventId y huella del cuerpo; una clave repetida con contenido distinto se rechaza.
- Coordinar deduplicación y efecto de forma duradera frente a concurrencia y caídas.
- Un duplicado completado devuelve el resultado conocido sin repetir el efecto; una confirmación de aviso no aprueba la reserva.

## Evidencia propia

- Decisión y justificación:
- Prueba positiva:
- Prueba negativa:
- Resultado observado (o esperado si no ejecutas la prueba):
- Riesgo pendiente y responsable:

## Referencias

- [IETF RFC 9421 — HTTP Message Signatures](https://www.rfc-editor.org/rfc/rfc9421.html)
- [OWASP REST Security](https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html)

## Procedencia y reutilización

Material elaborado para el proyecto personal de Andrez Higuera con apoyo de ChatGPT. Contiene información neutral y escenarios ficticios con fines educativos. Responsable editorial: Andrez Higuera. La mención de estándares y organizaciones en las referencias no implica afiliación, patrocinio ni certificación.

**Recurso:** ACA-REC-17 · **Versión editorial:** 1.0 · **Revisión:** 27 de septiembre de 2026.

Los textos educativos, ejercicios, plantillas y soluciones propios de este recurso se ofrecen bajo Creative Commons Atribución-NoComercial 4.0 Internacional (CC BY-NC 4.0). Al compartirlos o adaptarlos, conserve la atribución y los avisos aplicables, incluya el enlace al original y a la licencia, e indique los cambios. Los componentes de terceros identificados por separado conservan sus condiciones. Esta licencia no concede derechos sobre marcas ni implica respaldo institucional.

[Original](https://briefing.andrezhiguera.cl/academia/recursos/17-contrato-eventos.md) · [Licencia CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) · [Alcance y condiciones](https://briefing.andrezhiguera.cl/academia/condiciones-de-uso).
