Arquitectura n8n
Yastubo utiliza n8n como su orquestador de flujos externos. El backend está diseñado para emitir eventos en tiempo real hacia n8n sin penalizar el rendimiento de la API mediante el patrón Fire-and-Forget.
🧠 El Bus de Eventos Asíncrono
Section titled “🧠 El Bus de Eventos Asíncrono”Cada vez que ocurre una acción crítica en el backend (ej. una póliza se activa o un pago falla), el sistema dispara un evento asíncrono.
- Backend Activity: El servicio detecta el cambio de estado (ej.
POLICY_ACTIVE). - Dispatcher: Se invoca a
notify_n8n(). - Non-blocking Execution: Se crea una tarea de
asyncioindependiente que no bloquea la respuesta HTTP del usuario. - Routing: El sistema elige el webhook de n8n correspondiente basándose en el tipo de evento (Leads, Payments, etc.).
- Timeout Check: El backend espera máximo 3 segundos por la confirmación de n8n antes de cancelar la conexión para proteger la API.
🛡️ Enrutamiento de Webhooks
Section titled “🛡️ Enrutamiento de Webhooks”El backend soporta múltiples webhooks configurables en el archivo .env. Esto permite separar el tráfico de automatizaciones por dominio:
| Variable de Entorno | Dominio | Descripción |
|---|---|---|
N8N_WEBHOOK_LEADS | Marketing | Prospectos de WhatsApp, Meta Ads y Lead Scoring. |
N8N_WEBHOOK_PAYMENTS | Financiero | Recibos de pago, alertas de fraude y reintentos fallidos. |
N8N_WEBHOOK_CLAIMS | Operativo | Reporte de fallecimientos y gestión de beneficiarios. |
N8N_WEBHOOK_CHAT | Atención | Webhooks de Chatwoot e integración con LLMs. |
N8N_WEBHOOK_URL | General | Fallback para cualquier otro evento no clasificado. |
🚀 Beneficios del Modelo
Section titled “🚀 Beneficios del Modelo”- Extensibilidad: Añade integraciones con Zoho, WhatsApp o Slack sin modificar una sola línea de código en Python una vez expuesto el evento.
- Resiliencia: Si n8n cae, el backend sigue funcionando impecablemente.
- Trazabilidad: Cada envío a n8n queda registrado en los logs del servidor con el prefijo
[n8n].