01. Arquitectura del Sistema
ARCH-01 / HEXAGONAL_ARCHITECTURE / DESACOPLAMIENTO DE PROVEEDOR

Capas del Backend, Provider Layer & Extensibilidad Futura

Esta especificación describe la separación entre el Núcleo de Dominio de Innovia y los adaptadores de mensajería externa, aplicando el patrón de puertos y adaptadores (Arquitectura Hexagonal).

Mapa de Componentes del Sistema

Flujo de peticiones a través de las capas de seguridad, dominio, orquestación y proveedor

100%
Hexagonal

Capa de Abstracción: MessagingProvider Port

Define el contrato unificado sin atar a Innovia al SDK de Kapso

Ver Contratos TypeScript en MD
1
Onboarding WABA

`createCustomer()`, `createSetupLink()`, `syncPhoneNumbers()`.

2
Gestión de Plantillas

`syncTemplates(wabaId)` para sincronizar plantillas aprobadas por Meta.

3
Envíos Transaccionales

`sendTemplateMessage(phoneId, payload)` con retorno de providerMessageId.

4
Campañas & Webhooks

`createAndExecuteBroadcast()` y `normalizeWebhook()` a enums de Innovia.

Evolución Multi-Proveedor Sin Modificar el Modelo Central

Incorporar Gupshup o Meta Cloud API solo requiere una clase Adapter adicional

100%
flowchart LR A[Core Domain Innovia] --> B[Provider Router / Factory] B -->|Líneas Standard con Managed Billing| C[KapsoAdapter] B -->|Líneas Alto Volumen con Cap| D[GupshupAdapter] B -->|Conexión Enterprise Directa| E[MetaCloudAdapter] C --> Kapso[Kapso Platform] D --> Gupshup[Gupshup API] E --> Meta[Meta Cloud API]