Saltar a contenido

← Volver al índice

Roadmap de Implementación — DKV Pet Flows

Tipo: Plan de Proyecto
Audiencia: Equipo de Desarrollo
Fecha: 25 de marzo de 2026
Fuente de verdad: dkv-pet-cloud (Health Connect = integración futurible)

Posicionamiento: Pet Flows añade la capa de Customer Engagement sobre Health Connect — no compite con el ESB sanitario, lo complementa con engagement multicanal.


Arquitectura de Dependencias (Critical Path)

graph TD
    subgraph "LAYER 0 - Modelo de Datos"
        A["Flow Model TypeScript + Zod"]
        B["Node Registry 40 nodos"]
    end

    subgraph "LAYER 1 - Paralelo FE + BE"
        C["Flow Canvas React Flow"]
        D["Node Catalog Panel"]
        E["Node Config Panel"]
        F["Quarkus REST API"]
        G["PostgreSQL Schema"]
    end

    subgraph "LAYER 2 - Integracion"
        H["FE-BE Connect TanStack Query"]
        I["Dapr Workflow Engine"]
    end

    subgraph "LAYER 3 - Engagement"
        J["Push Gorush"]
        K["Email Dapr Binding"]
        L["Execution Monitor SSE"]
    end

    subgraph "LAYER 4 - Inteligencia"
        M["AI Nodes LangChain4j"]
        N["Analytics Dashboard"]
    end

    A --> C & D & E & F & G
    B --> C & D & E
    C & D & E --> H
    F & G --> H
    H --> I
    I --> J & K & L
    L --> N
    I --> M

Clave: Layer 0 desbloquea TODO. Layer 1 es 100% paralelo.


Resumen de Sprints

Sprint Duración SP Paralelo con Output Principal
S0 Fundaciones 1 sem 13 Tipos + Registry → desbloquea todo
S1A Frontend Canvas 2 sem 35 S1B Flow Builder visual drag-and-drop
S1B Backend API 2 sem 31 S1A REST API + PostgreSQL
S2 Integración 1 sem 13 FE↔BE conectados
S3A Motor Ejecución 2 sem 35 S3B Dapr Workflows operativos
S3B Canales 2 sem 27 S3A Push + Email + SMS
S4 Monitor 1.5 sem 23 SSE + Analytics
S5 IA 2 sem 24 Nodos IA diferenciadores
TOTAL 201 SP

Calendario con Paralelismo

Semana:  1    2    3    4    5    6    7    8    9
         ┌──┐
  S0     │██│ Fundaciones
         └──┘
              ┌────────────┐
  S1A         │████████████│ Frontend Canvas
              └────────────┘
              ┌────────────┐
  S1B         │████████████│ Backend API        ← PARALELO
              └────────────┘
                            ┌──┐
  S2                        │██│ Integración
                            └──┘
                                ┌────────────┐
  S3A                           │████████████│ Motor Ejecución
                                └────────────┘
                                ┌────────────┐
  S3B                           │████████████│ Canales          ← PARALELO
                                └────────────┘
                                              ┌─────┐
  S4                                          │█████│ Monitor
                                              └─────┘

Secuencial: 12.5 semanas ≈ 3 meses
Paralelo:    8.5 semanas ≈ 2 meses (ahorro 32%)

Sprint 0 — Fundaciones (1 semana)

# Story SP Prioridad
0.1 Definir FlowDefinition TypeScript types (Node, Edge, Flow, Execution) 3 Must
0.2 Crear Zod schemas para validación de cada tipo de nodo 3 Must
0.3 Crear NodeRegistry con metadata de los 40 nodos 5 Must
0.4 Scaffolding packages/flow-engine/ con exports 2 Must

Sprint 1A — Frontend Canvas (2 semanas)

# Story SP Prioridad
1A.1 FlowCanvas component con React Flow, grid, zoom, minimap 5 Must
1A.2 Custom Node components (5 categorías × estilo visual) 8 Must
1A.3 NodeCatalogPanel sidebar con búsqueda y drag-and-drop 5 Must
1A.4 NodeConfigPanel slide-out con formularios dinámicos 8 Must
1A.5 Zustand stores: useFlowStore + useCanvasStore 3 Must
1A.6 Undo/Redo con Zustand temporal middleware 3 Should
1A.7 Validación visual: nodos sin conexión, edge validation 3 Should

Sprint 1B — Backend API (2 semanas)

# Story SP Prioridad
1B.1 PostgreSQL schema: flow_definition, flow_version (JSONB) 5 Must
1B.2 Quarkus REST: CRUD /api/flows 8 Must
1B.3 Quarkus REST: /api/flows/{id}/validate 3 Must
1B.4 Quarkus REST: /api/flows/{id}/execute vía Dapr 5 Must
1B.5 PostgreSQL schema: flow_execution, execution_step 3 Must
1B.6 Versioning de flows: cada save crea nueva versión 5 Should
1B.7 Java sealed classes para estados de ejecución 2 Should

Sprint 2 — Integración FE↔BE (1 semana)

# Story SP Prioridad
2.1 TanStack Query hooks: useFlows, useFlowById, etc. 5 Must
2.2 Auto-save flow cada 30s + save manual 3 Must
2.3 Serialización React Flow ↔ API JSON 3 Must
2.4 Indicador de estado de conexión 2 Should

Sprints 3–5 (detalle reducido)

S3A — Motor de Ejecución (2 sem, 35 SP)

  • Dapr Workflow: interpretar flow_definition → actividades
  • Nodos Trigger: Webhook, Cron, Evento API
  • Nodos Lógica: If/Else, Wait, Router
  • Event sourcing + Circuit breaker

S3B — Canales de Comunicación (2 sem, 27 SP)

  • Gorush: Push APNs + FCM con rich content
  • Email Dapr Binding: SMTP/SendGrid
  • SMS Dapr Binding: Twilio/Vonage
  • In-App Message + Inbox

S4 — Monitor + Analytics (1.5 sem, 23 SP)

  • SSE endpoint para eventos de ejecución
  • Execution Monitor UI: progreso nodo por nodo
  • Campaign Analytics: delivery, open, click, conversion

S5 — IA (2 sem, 24 SP)

  • IA: Generar Contenido (LangChain4j → Azure OpenAI)
  • IA: Best Time to Send, Sentiment, Clasificar, Recomendar

Análisis de Riesgos

Riesgo Prob. Impacto Mitigación
dkv-pet-cloud API no documentada M H Spike de 2 días al inicio de S3A
Gorush setup complejo (APNs certs) M M Usar FCM-only en dev
Dapr Workflow learning curve (Java) M H Prototipar workflow simple en S0
React Flow performance >50 nodos L M Virtualización + lazy rendering
LangChain4j + Azure OpenAI latencia M M Timeout + fallback templates

Documentos Relacionados

Nivel Documento Descripción
Librería Jaraxa Arquitectura de la librería visual
Nodos Catálogo 40 Nodos Tipos, colores, fuentes de datos
Especificación Flow Builder Requisitos UX del editor