- Renombrar 02-integraciones/ → 03-integraciones/ (resolver prefijo duplicado) - Renombrar 02-devops/ → 04-devops/ (resolver prefijo duplicado) - Renombrar architecture/ → 97-adr/ (agregar prefijo numerico) - Actualizar _MAP.md con nueva estructura y version 2.1.0 Estructura final: - 00-vision-general/ - 01-modulos/ - 02-especificaciones/ - 03-integraciones/ - 04-devops/ - 97-adr/ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
70 lines
1.2 KiB
Markdown
70 lines
1.2 KiB
Markdown
---
|
|
id: "ADR-008"
|
|
title: "Webhook Retry Strategy"
|
|
type: "ADR"
|
|
status: "Accepted"
|
|
priority: "P0"
|
|
supersedes: "N/A"
|
|
superseded_by: "N/A"
|
|
version: "1.0.0"
|
|
created_date: "2026-01-10"
|
|
updated_date: "2026-01-10"
|
|
---
|
|
|
|
# ADR-008: Webhook Retry Strategy
|
|
|
|
## Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| ID | ADR-008 |
|
|
| Estado | Accepted |
|
|
| Fecha | 2026-01-10 |
|
|
| Supersede | N/A |
|
|
|
|
## Contexto
|
|
|
|
Los webhooks outbound pueden fallar por multiples razones y se necesita una estrategia robusta de reintentos para garantizar entrega eventual.
|
|
|
|
## Decision
|
|
|
|
**Implementar BullMQ con exponential backoff y Dead Letter Queue** para webhooks fallidos.
|
|
|
|
## Implementacion
|
|
|
|
```typescript
|
|
{
|
|
attempts: 5,
|
|
backoff: {
|
|
type: 'exponential',
|
|
delay: 60000 // 1min, 2min, 4min, 8min, 16min
|
|
}
|
|
}
|
|
```
|
|
|
|
### Estrategia de Reintentos
|
|
|
|
| Intento | Delay |
|
|
|---------|-------|
|
|
| 1 | Inmediato |
|
|
| 2 | 1 minuto |
|
|
| 3 | 2 minutos |
|
|
| 4 | 4 minutos |
|
|
| 5 | 8 minutos |
|
|
| DLQ | Despues de 5 fallos |
|
|
|
|
## Consecuencias
|
|
|
|
### Positivas
|
|
- Alta tasa de entrega eventual (>99.9%)
|
|
- No sobrecarga destinos problematicos
|
|
|
|
### Negativas
|
|
- Delay maximo de entrega: ~15 minutos
|
|
- Complejidad de DLQ
|
|
|
|
---
|
|
|
|
**Fecha decision:** 2026-01-10
|
|
**Autores:** Claude Code (Arquitectura)
|