Arquitectura del Sistema — DKV Pet Flows¶
Tipo: Documentación Técnica — Interna
Estado: 🔄 En progreso
Relacionado con: Catálogo de Funcionalidades
Posicionamiento Arquitectónico¶
Pet Flows añade la capa de Customer Engagement sobre los datos que ya fluyen por Health Connect.
Pet Flows no compite con la infraestructura de integración sanitaria existente de DKV. Health Connect (InterSystems) es el ESB de datos clínicos y operacionales. Pet Flows es la capa de engagement que consume eventos del ecosistema DKV para ejecutar flujos de comunicación multicanal.
graph TB
subgraph "DKV Infraestructura Existente"
HC["InterSystems Health Connect (ESB)"]
HS["HealthShare Patient Index"]
PetCloud["dkv-pet-cloud (API)"]
end
subgraph "DKV Pet Flows (Capa de Engagement)"
FB["Flow Builder (React Flow)"]
DE["Dapr Workflow Engine"]
AI["LangChain4j (IA)"]
end
subgraph "Canales de Salida"
Push["📲 Push (Gorush)"]
Email["✉️ Email (Dapr Binding)"]
SMS["💬 SMS"]
InApp["📢 In-App"]
end
HC -->|"Eventos clínicos"| PetCloud
HS -->|"Identidad paciente"| PetCloud
PetCloud -->|"Webhooks/API REST"| DE
FB -->|"Diseña flujos"| DE
DE -->|"Ejecuta acciones"| Push & Email & SMS & InApp
DE -->|"Enriquece con"| AI
style HC fill:#0891B2,color:#fff
style HS fill:#0891B2,color:#fff
style PetCloud fill:#009BE0,color:#fff
style FB fill:#7C3AED,color:#fff
style DE fill:#D97706,color:#fff
style AI fill:#DB2777,color:#fff
style Push fill:#059669,color:#fff
style Email fill:#059669,color:#fff
style SMS fill:#059669,color:#fff
style InApp fill:#059669,color:#fff
| Aspecto | InterSystems Health Connect | DKV Pet Flows |
|---|---|---|
| Propósito | Integración de sistemas sanitarios | Customer engagement veterinario |
| Usuarios | Equipos IT / integradores | Marketing / producto / operaciones |
| Protocolos | HL7, FHIR, DICOM, IHE | REST, WebSocket, SSE, Push |
| Salidas | Mensajes entre sistemas | Push, email, SMS, in-app al usuario final |
| IA | No nativo | Nodos IA integrados (LLM, sentiment, prediction) |
Stack Tecnológico¶
| Capa | Tecnología | Rol |
|---|---|---|
| Frontend | React 18 + Vite + React Flow + Zustand | Editor visual de flujos |
| Backend | Quarkus 3.32 (Java 25) + Dapr | API REST + orquestación |
| Push | Gorush (Go) | Fan-out APNs + FCM |
| Dapr Binding (SMTP/SendGrid) | Transaccional + Marketing | |
| Base de Datos | PostgreSQL + JSONB | Definiciones + ejecuciones |
| Real-time | SSE (Server-Sent Events) | Monitor de ejecución |
| IA | LangChain4j → Azure OpenAI / Ollama | Contenido, sentiment, timing |
| Fuente de datos | dkv-pet-cloud | API de negocio (mascota, póliza, consulta) |
Componentes Principales¶
- Flow Builder UI: Canvas React Flow con 40 nodos drag-and-drop
- Dapr Workflow Engine: Interpretador de flow_definition → actividades
- Gorush: Microservicio Go stateless para push notifications (<20MB RAM)
- Node Registry: Registro de 40 nodos con metadata, validación Zod, y categorización
- Execution Monitor: SSE endpoint para visualización en tiempo real
Documentación Detallada¶
- Motor de Flujos Dinámicos (Patrón Intérprete): Cómo se ejecutan los gráficos UI en Java estático empleando "Workflow As Code".
- Decisión: Dapr vs Pekko & Quarkus vs Spring Boot: Razonamiento de la sustitución del Modelo de Actores.
- Diagrama de componentes detallado (Pendiente)
- Modelo de datos (PostgreSQL + JSONB) (Pendiente)
- Configuración Dapr (YAML bindings) (Pendiente)