template-saas/docs/02-integraciones/INT-006-webhooks.md
rckrdmrd 50a821a415
Some checks failed
CI / Backend CI (push) Has been cancelled
CI / Frontend CI (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / CI Summary (push) Has been cancelled
[SIMCO-V38] feat: Actualizar a SIMCO v3.8.0
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8
- Actualizaciones de configuracion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:08 -06:00

146 lines
3.2 KiB
Markdown

---
id: "INT-006"
title: "Integracion Webhooks Outbound"
type: "Integration"
status: "Implemented"
priority: "P1"
provider: "BullMQ/Redis"
category: "Messaging"
multi_tenant: true
version: "1.0.0"
created_date: "2026-01-07"
updated_date: "2026-01-10"
---
# INT-006: Webhooks Outbound
## Metadata
| Campo | Valor |
|-------|-------|
| Codigo | INT-006 |
| Proveedor | BullMQ + Redis |
| Tipo | Webhooks |
| Estado | Implementado |
| Multi-tenant | Si |
| Fecha integracion | 2026-01-10 |
---
**Documentacion completa:** Ver [SAAS-010-webhooks.md](../01-modulos/SAAS-010-webhooks.md)
## Resumen
Sistema de webhooks outbound para notificar eventos a sistemas externos.
## Tecnologia
- BullMQ para cola de procesamiento
- Redis como backend de cola
- Firma HMAC-SHA256 de payloads
## Caracteristicas
- Eventos de suscripcion, usuarios, tenants, etc.
- Reintentos automaticos con backoff
- Logs de entrega
- Configuracion por tenant
## Eventos Disponibles
- subscription.created/updated/cancelled
- user.created/updated/deleted
- tenant.created/updated
- invoice.paid/failed
- Y mas...
## Configuracion
```env
REDIS_HOST=localhost
REDIS_PORT=6379
WEBHOOK_MAX_RETRIES=5
WEBHOOK_RETRY_DELAY=60000
```
## Rate Limits
| Limite | Valor | Accion si excede |
|--------|-------|------------------|
| Webhooks/min | 1000 por tenant | Cola de espera |
## Manejo de Errores
| Codigo | Descripcion | Accion |
|--------|-------------|--------|
| 400 | Bad Request | Log + no retry |
| 401 | Unauthorized | Renovar credenciales |
| 429 | Rate Limited | Backoff exponencial |
| 500 | Server Error | Retry con backoff (max 5 intentos) |
| Timeout | Conexion agotada | Retry con backoff |
## Fallbacks
### Dead Letter Queue (DLQ)
| Intento | Delay | Accion si falla |
|---------|-------|-----------------|
| 1 | Inmediato | Encolar retry |
| 2 | 1 minuto | Encolar retry |
| 3 | 5 minutos | Encolar retry |
| 4 | 15 minutos | Encolar retry |
| 5 | 1 hora | Mover a DLQ |
### Procesamiento DLQ
- Revision manual requerida para webhooks en DLQ
- Alerta a Slack/Email si DLQ > 10 items
- Expiracion automatica: 7 dias
- Dashboard Bull Board para visualizacion
### Retry Strategy
```typescript
{
attempts: 5,
backoff: {
type: 'exponential',
delay: 60000 // 1min, 2min, 4min, 8min, 16min
},
removeOnComplete: { age: 86400 }, // 24h
removeOnFail: false // Mantener en DLQ
}
```
### Monitoreo DLQ
| Metrica | Descripcion | Alerta |
|---------|-------------|--------|
| DLQ size | Webhooks fallidos | >10 items |
| DLQ age | Tiempo en DLQ | >24h |
| Retry rate | Tasa de reintentos | >10% |
## Multi-tenant
- Credenciales: Por tenant (cada tenant configura sus endpoints y secrets)
- Configuracion: Por tenant via tenant_config
- Aislamiento: Prefijo tenant_id en todas las operaciones
## Testing
### Sandbox/Test Mode
- Usar servicios como webhook.site para testing
- Logs detallados de entrega en desarrollo
- Fixtures disponibles para testing unitario
## Monitoreo
| Metrica | Descripcion | Alerta |
|---------|-------------|--------|
| Latencia | Tiempo de respuesta | >2s |
| Errores | Tasa de errores | >1% |
| Disponibilidad | Uptime del servicio | <99.9% |
## Referencias
- Modulo relacionado: SAAS-010-webhooks.md
---
**Ultima actualizacion:** 2026-01-10
**Version:** 1.0.0