template-saas/docs/03-integraciones/INT-006-webhooks.md
Adrian Flores Cortes 806612a4db
Some checks are pending
CI / Backend CI (push) Waiting to run
CI / Frontend CI (push) Waiting to run
CI / Security Scan (push) Waiting to run
CI / CI Summary (push) Blocked by required conditions
[REESTRUCTURA-DOCS] refactor: Corregir estructura docs/ segun SIMCO-DOCUMENTACION-PROYECTO
- 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>
2026-01-24 20:34:14 -06:00

3.2 KiB

id title type status priority provider category multi_tenant version created_date updated_date
INT-006 Integracion Webhooks Outbound Integration Implemented P1 BullMQ/Redis Messaging true 1.0.0 2026-01-07 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

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

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

{
  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