VATO Database

Arquitectura Multi-Base de Datos con Persistencia Poliglota

6 Tecnologías
8 Dominios
48 Tablas
150+ Entidades

Persistencia Polímata Avanzada

Arquitectura multi-base de datos que aprovecha las fortalezas de cada tecnología para datos específicos

6
Bases de Datos
8
Dominios
48
Tablas PostgreSQL
27
Tipos de Nodos
57
Relaciones Neo4j
3
Colecciones Vector

Arquitectura de Capas

CAPA DE APLICACIÓN
Next.js Frontend + APIs
↓
CAPA DE ABSTRACCIÓN
DatabaseService (Factory Pattern) - Interfaces Unificadas
↓
CAPA DE IMPLEMENTACIÓN
PostgreSQL | Neo4j | Qdrant | Redis | MongoDB | MinIO

Diseño Modular y Escalable

Cada base de datos opera de forma independiente, permitiendo escalamiento horizontal y optimización específica por tipo de dato.

Stack de Bases de Datos

Seis tecnologías especializadas trabajando en conjunto

🐘

PostgreSQL

Puerto: 5432

Base de datos relacional principal con 48 tablas organizadas en 8 esquemas. Almacena datos estructurados, transacciones ACID y relaciones complejas. Backbone del sistema para identidad, conversaciones, tareas y configuración.

🕸️

Neo4j

Puertos: 7474 (HTTP), 7687 (Bolt)

Base de datos de grafos con 27 tipos de nodos y 57 tipos de relaciones. Gestiona redes de conocimiento, mapeo de relaciones complejas, memoria asociativa, y patrones de interacción multi-agente.

🔍

Qdrant

Puerto: 6333

Base de datos vectorial con 3 colecciones para búsqueda semántica. Almacena embeddings de memoria, documentos y mensajes. Habilita RAG, recuperación contextual y búsqueda por similitud.

⚡

Redis

Puerto: 6379

Caché en memoria con 8 patrones de keys. Gestiona sesiones, memoria de trabajo, colas de tareas, estado de agentes y rate limiting. Respuestas en milisegundos para operaciones críticas.

🍃

MongoDB

Puerto: 27017

Base de datos documental con 4 colecciones. Almacena logs de ejecución, trazas de decisión de agentes, mensajes completos y errores detallados. Schema flexible para datos en evolución.

📦

MinIO

Puertos: 9000 (API), 9001 (Console)

Almacenamiento de objetos compatible con S3. Tres buckets para documentos, audio e imágenes. Maneja archivos grandes, versionado, políticas de acceso y cifrado.

Decisiones de Diseño

  • Factory Pattern para abstracción
  • Adapter Pattern por base de datos
  • Desacoplamiento completo
  • Type-safe con TypeScript
  • Testeable y mockeable

Capacidades de Escala

  • Read replicas (PostgreSQL)
  • Clustering (Neo4j Enterprise)
  • Modo distribuido (Qdrant)
  • Sharding (Redis, MongoDB)
  • Erasure coding (MinIO)

Seguridad

  • TLS/SSL en todas las conexiones
  • Variables de entorno para credenciales
  • Row-level security (PostgreSQL)
  • API key authentication (Qdrant)
  • IAM policies (MinIO)

8 Dominios de Negocio

Diseño dirigido por dominios con separación clara de responsabilidades

1
Identity Domain
Usuarios, autenticación, perfiles y preferencias • 4 tablas PostgreSQL
2
Conversation Domain
Diálogos interactivos, mensajes y contexto • 5 tablas + MongoDB
3
Memory Domain
Sistema cognitivo de memoria (episódica, semántica, procedimental) • Neo4j + Qdrant
4
Knowledge Domain
Gestión documental y base de conocimiento • 8 tablas + MinIO + Qdrant
5
Cognition Domain
Agentes, tareas, razonamiento y herramientas • 9 tablas + Neo4j + MongoDB
6
Persona Domain
Modos adaptativos y perfiles de comportamiento • 6 tablas + Neo4j
7
Provenance Domain
Trazabilidad, citaciones y transparencia • 5 tablas + Neo4j
8
System Domain
Configuración, auditoría y monitoreo • 9 tablas + MongoDB
🔐

Identity Domain

Gestión de usuarios con OAuth, sesiones JWT, preferencias granulares y tiers de cuenta. Base para control de acceso y personalización.

💬

Conversation Domain

Conversaciones con threading, detección de intenciones, análisis emocional y metadata rica. Mantiene contexto y flujo de diálogo.

🧠

Memory Domain

Sistema de memoria multi-nivel con consolidación automática, scoring de importancia, decay temporal y asociaciones contextuales.

📚

Knowledge Domain

Procesamiento multi-formato (PDF, audio, imágenes), chunking inteligente, búsqueda híbrida y colecciones organizadas.

🤖

Cognition Domain

Orquestación multi-agente, cadenas de razonamiento, registro de herramientas y tracking de ejecución con métricas detalladas.

🎭

Persona Domain

Modos contextuales (investigación, creatividad, análisis), detección automática, perfiles de comportamiento y estilos de comunicación.

🔗

Provenance Domain

Citaciones verificables, cadenas de proveniencia, verificación de claims y tracking de influencia para transparencia total.

⚙️

System Domain

Configuración dinámica, feature flags, audit logs completos, métricas de uso, rate limiting y gestión de versiones de modelos.

Patrones Arquitectónicos

Principios de diseño que garantizan escalabilidad y mantenibilidad

🏭

Factory Pattern

DatabaseFactory crea instancias apropiadas de cada adaptador. Centraliza lógica de inicialización, configuración y gestión de conexiones.

🔌

Adapter Pattern

Cada base de datos tiene su adaptador que implementa interfaces comunes. Traduce operaciones genéricas a sintaxis específica.

🎯

Strategy Pattern

Bases de datos intercambiables sin cambios en código de aplicación. Permite migración y A/B testing de tecnologías.

💉

Dependency Injection

Instancias de base de datos inyectadas en servicios. Facilita testing con mocks y reduce acoplamiento.

Flujos de Datos Típicos

  • Usuario envía mensaje → PostgreSQL + Qdrant + MongoDB + Redis
  • Búsqueda semántica → Qdrant (vector) → PostgreSQL (metadata) → Neo4j (relaciones)
  • Upload documento → MinIO → PostgreSQL → Qdrant (chunks) → Neo4j (entities)
  • Ejecución agente → PostgreSQL (task) → MongoDB (logs) → Neo4j (reasoning)

Cross-Domain Integration

  • User → Conversations → Memory
  • Conversation → Tasks → Agents
  • Message → Citations → Sources
  • Document → Memory → Knowledge
  • Task → Provenance → Reasoning

Garantías de Consistencia

  • Foreign keys en PostgreSQL
  • Transacciones ACID para crítico
  • Eventual consistency para logs
  • Reconciliación periódica
  • Idempotencia en escrituras