Módulo 5: Landscape de Vector Databases para AI Engineers

Cápsula 06: Cuándo Elegir Cada Opción

Descripción de la cápsula

Después de comparar features, analizar arquitecturas managed vs self-hosted, y calcular costos reales, llega el momento de la verdad: elegir. Pero elegir no es apostar. Es construir un framework de decisión que cualquier miembro de tu equipo pueda seguir y defender con datos.

Esta cápsula te da un sistema de decisión basado en 5 variables concretas: tamaño del equipo, presupuesto, escala de datos, requisitos de latencia y restricciones de compliance. No vas a memorizar qué proveedor es "mejor" — vas a aprender a derivar la respuesta correcta para cualquier combinación de variables.

Al final tendrás un decision tree completo que puedes aplicar a tu proyecto actual y a cualquier decisión futura de infraestructura vectorial.


Las 5 variables de decisión

Toda selección de vector database se reduce a estas cinco variables. El error más común es decidir mirando solo una o dos.

Variable 1: Tamaño y perfil del equipo

Equipo      | Perfil                           | Implicación
------------|----------------------------------|----------------------------------
1-2 devs    | Generalistas, sin DevOps         | Managed obligatorio
3-5 devs    | Mix, posible 1 con infra skills  | Managed preferido, self-hosted viable
5-10 devs   | Roles definidos, DevOps parcial  | Ambas opciones viables
10+ devs    | DevOps dedicado, SRE             | Self-hosted viable y potencialmente preferido

Regla: Si nadie en tu equipo puede ser despertado a las 3am para arreglar un nodo caído, necesitas managed.

Variable 2: Presupuesto mensual disponible

Budget       | Rango          | Opciones viables
-------------|----------------|------------------------------------------
$0           | Validación     | Free tiers: Pinecone Free, Qdrant Free, ChromaDB local
$0-100/mes   | PoC/MVP        | Free tiers + ChromaDB en droplet básico
$100-500/mes | Producto early | Qdrant Cloud, Weaviate Cloud, Pinecone Standard
$500-2K/mes  | Producción     | Cualquier managed, self-hosted en buen server
$2K+/mes     | Enterprise     | Enterprise tiers, self-hosted cluster, hybrid

Variable 3: Escala actual y proyectada

Vectores          | Clasificación | Consideraciones
------------------|---------------|------------------------------------------
< 10K             | Tiny          | Cualquier opción funciona, incluido numpy
10K - 100K        | Small         | Free tiers suficientes
100K - 500K       | Medium        | Necesitas tier pagado o self-hosted con RAM
500K - 5M         | Large         | Performance y costos importan
5M - 50M          | Very Large    | Sharding, replicación necesarios
> 50M             | Massive       | Solo opciones enterprise

Variable 4: Requisitos de latencia

Latencia p95    | Caso de uso típico              | Opciones viables
----------------|--------------------------------|---------------------------
< 10ms          | Autocompletado, real-time       | Pinecone, Qdrant (optimizado)
10-50ms         | Búsqueda interactiva            | Cualquier managed, self-hosted bien configurado
50-200ms        | RAG en chatbot                  | Todas las opciones
200-1000ms      | Procesamiento batch             | Todas, incluyendo pgvector
> 1000ms        | Análisis offline                | No necesitas vector DB especializada

Variable 5: Restricciones de compliance

Nivel          | Requisitos                      | Opciones viables
---------------|--------------------------------|----------------------------------
Ninguno        | Sin regulación específica       | Cualquier proveedor
Básico         | Datos en región específica      | Managed con selección de región
Medio          | GDPR, datos personales          | Managed con DPA o self-hosted en tu infra
Alto           | HIPAA, datos médicos            | Self-hosted o enterprise con certificación
Crítico        | Gobierno, defensa, financiero   | Self-hosted en infra auditada exclusivamente

Decision Tree: el framework completo

Sigue este árbol de decisión paso a paso. Cada nodo es una pregunta con respuestas binarias.

Nivel 1: ¿Necesitas una vector DB dedicada?

¿Tienes > 10K vectores Y necesitas búsqueda < 500ms?
├── NO → Usa numpy/FAISS en memoria o pgvector si ya tienes Postgres
│        (No necesitas vector DB dedicada. Revisa Cápsula 07 del Módulo 1)
└── SÍ → Continúa al Nivel 2

Nivel 2: ¿Managed o Self-hosted?

¿Tu equipo tiene DevOps dedicado (>= 1 persona con >50% de su tiempo)?
├── NO → MANAGED (continúa a Nivel 3A)
└── SÍ → ¿Tienes restricciones de compliance que impiden managed?
         ├── SÍ → SELF-HOSTED (continúa a Nivel 3B)
         └── NO → ¿Tu presupuesto permite managed ($100+/mes)?
                  ├── SÍ → MANAGED (continúa a Nivel 3A)
                  │        (Managed sigue siendo preferido por TCO)
                  └── NO → SELF-HOSTED (continúa a Nivel 3B)

Nivel 3A: Selección de proveedor managed

¿Cuántos vectores tienes/proyectas a 6 meses?

< 100K vectores:
├── ¿Budget = $0? → Pinecone Free (100K límite) o Qdrant Cloud Free (1GB)
├── ¿Necesitas latencia < 20ms? → Pinecone Standard
└── ¿Budget < $50/mes? → Qdrant Cloud Standard

100K - 1M vectores:
├── ¿Prioridad es latencia? → Pinecone Standard
├── ¿Prioridad es costo? → Qdrant Cloud
└── ¿Necesitas hybrid search nativo? → Weaviate Cloud

1M - 10M vectores:
├── ¿Necesitas auto-scaling? → Pinecone Standard/Enterprise
├── ¿Prioridad es costo? → Qdrant Cloud (escala bien)
└── ¿Necesitas GraphQL + modules? → Weaviate Cloud

> 10M vectores:
├── ¿Budget > $2K/mes? → Pinecone Enterprise o Qdrant Enterprise
└── ¿Budget limitado? → Considera self-hosted (Nivel 3B)

Nivel 3B: Selección de proveedor self-hosted

¿Cuántos vectores tienes/proyectas a 6 meses?

< 500K vectores:
├── ¿Quieres setup mínimo (pip install)? → ChromaDB
├── ¿Necesitas API REST lista para producción? → Qdrant
└── ¿Ya usas Kubernetes? → Weaviate con Helm chart

500K - 5M vectores:
├── ¿Prioridad es performance pura? → Qdrant (Rust-based)
├── ¿Necesitas hybrid search + modules? → Weaviate
└── ¿Equipo ya sabe Go? → Milvus

> 5M vectores:
├── ¿Necesitas sharding horizontal? → Milvus o Qdrant cluster
├── ¿Equipo tiene experiencia con Kubernetes? → Weaviate o Milvus
└── ¿Budget para hardware dedicado? → Qdrant cluster en bare metal

Reglas rápidas por etapa de producto

Etapa 1: Descubrimiento / PoC (0-3 meses)

Objetivo: Validar que la búsqueda vectorial resuelve el problema del usuario.

Criterios de decisión:

  • Velocidad de setup > todo lo demás
  • $0 de infraestructura ideal
  • No importa si escala
  • No importa vendor lock-in

Recomendaciones:

EscenarioRecomendaciónRazón
Solo, aprendiendoChromaDB localpip install chromadb, 30 segundos
Equipo pequeño, demoPinecone FreeAPI lista, 100K vectores gratis
Datos sensibles, localChromaDB localTodo en tu máquina
Ya tienes PostgrespgvectorSin nueva dependencia

Anti-regla: NO dediques más de 1 día a infraestructura en esta etapa.

Etapa 2: Validación de negocio (3-6 meses)

Objetivo: Confirmar product-market fit con usuarios reales.

Criterios de decisión:

  • Latencia < 200ms para UX aceptable
  • Uptime > 99% (no 99.9% aún)
  • Costo predecible < $200/mes
  • Soporte básico disponible

Recomendaciones:

EscenarioRecomendaciónRazón
< 100K vectores, budget mínimoQdrant Cloud Free → StandardTransición suave sin migración
100K-500K vectoresPinecone StandardLatencia baja, zero ops
Multi-tenant tempranoWeaviate CloudAislamiento nativo por tenant
Datos regulados (GDPR)Qdrant self-hosted en EUControl total de residencia

Anti-regla: NO migres de proveedor en esta etapa a menos que tengas un blocker técnico real.

Etapa 3: Escala productiva (6-18 meses)

Objetivo: Sostener crecimiento con SLA definidos.

Criterios de decisión:

  • SLA > 99.9% uptime
  • Latencia p95 definida y monitoreada
  • Plan de incidentes documentado
  • Estrategia de escalado definida
  • Costos optimizados (no solo "que funcione")

Recomendaciones:

EscenarioRecomendaciónRazón
500K-2M, equipo sin DevOpsPinecone StandardAuto-scaling, SLA incluido
500K-2M, equipo con DevOpsQdrant self-hostedControl + costo optimizado
2M-10M, multi-tenantWeaviate Cloud o Qdrant EnterpriseSharding + aislamiento
>10M, enterpriseMilvus cluster o Pinecone EnterpriseDiseñados para massive scale

Etapa 4: Madurez / Optimización (18+ meses)

Objetivo: Optimizar costos sin sacrificar performance.

Criterios de decisión:

  • TCO optimizado (revisión trimestral)
  • Redundancia geográfica
  • Disaster recovery probado
  • Métricas de negocio ligadas a performance de búsqueda

Estrategias comunes:

  • Migrar de managed a self-hosted SI tienes DevOps y el ahorro justifica la migración
  • Negociar enterprise pricing con volumen
  • Implementar caching para reducir queries directas
  • Separar hot/cold storage (vectores frecuentes en RAM, resto en disco)

Casos de decisión detallados

Caso 1: Startup pre-seed, founder técnico solo

Contexto:

  • 1 developer (tú)
  • Budget: $0-50/mes
  • 20K documentos de knowledge base
  • Chatbot RAG para demostrar a inversores
  • Timeline: 2 semanas para demo

Análisis por variable:

VariableValorImplicación
Equipo1 dev, sin DevOpsManaged obligatorio
Budget$0-50/mesFree tiers
Escala20K vectoresTiny, cualquiera funciona
Latencia< 500ms (demo)No es constraint
ComplianceNingunoSin restricción

Decisión: ChromaDB local para desarrollo → Pinecone Free para demo

Justificación: ChromaDB te deja iterar rápido localmente. Para la demo, Pinecone Free te da una URL estable sin manejar servidores.

Caso 2: Startup seed, equipo de 4 devs

Contexto:

  • 4 developers (1 con algo de infra)
  • Budget: $200-500/mes para toda la infra
  • 150K documentos, creciendo 20%/mes
  • Producto SaaS B2B con 30 clientes early
  • Latencia < 100ms para búsqueda

Análisis por variable:

VariableValorImplicación
Equipo4 devs, 1 parcial infraManaged preferido
Budget$200-500/mesStandard tiers
Escala150K → 500K en 6 mesesMedium, necesita tier pagado
Latencia< 100ms p95Descarta pgvector
ComplianceBásico (datos B2B)Managed con DPA

Decisión: Qdrant Cloud Standard

Justificación: Mejor relación costo/performance para 150K-500K vectores. API REST nativa. Latencia < 50ms. ~$50-100/mes. Crece bien hasta 2M+ sin migración.

Alternativa: Pinecone Standard si la prioridad absoluta es zero-ops (pero ~$150/mes más).

Caso 3: Empresa mediana, equipo de producto + DevOps

Contexto:

  • 8 developers + 2 DevOps
  • Budget: $1,000-3,000/mes para vector search
  • 2M documentos, 500 usuarios concurrentes
  • Multi-tenant (50 clientes enterprise)
  • GDPR obligatorio, datos en EU
  • SLA 99.9% uptime contractual

Análisis por variable:

VariableValorImplicación
Equipo10 personas, DevOps dedicadoSelf-hosted viable
Budget$1K-3K/mesManaged enterprise o self-hosted
Escala2M vectores, 500 concurrentLarge, necesita replicación
Latencia< 50ms p95Requiere índice optimizado
ComplianceGDPR, datos EUManaged EU o self-hosted EU

Decisión: Qdrant self-hosted en AWS EU (Frankfurt) con cluster de 3 nodos

Justificación:

  • GDPR requiere datos en EU → self-hosted da control total
  • DevOps dedicado → costo operativo manejable
  • 2M vectores en 3 nodos → redundancia + performance
  • Costo: ~$540/mes infra + ~$600/mes operación = $1,140/mes TCO
  • vs Pinecone Enterprise EU: ~$2,000/mes (ahorro de $860/mes = $10,320/año)

Alternativa: Weaviate Cloud EU si quieres reducir carga operativa y el budget permite $1,500-2,000/mes.

Caso 4: Scale-up con 20M vectores

Contexto:

  • 15 developers + 4 DevOps/SRE
  • Budget: $5,000-15,000/mes para search infrastructure
  • 20M vectores, 2,000 usuarios concurrentes
  • Multi-región (US + EU)
  • Latencia < 30ms p95
  • SOC2 + GDPR

Análisis por variable:

VariableValorImplicación
Equipo19 personas, SRE teamSelf-hosted preferido
Budget$5K-15K/mesEnterprise o cluster propio
Escala20M vectoresNecesita sharding horizontal
Latencia< 30ms p95Multi-región necesaria
ComplianceSOC2 + GDPRSelf-hosted o enterprise certificado

Decisión: Milvus cluster en Kubernetes (multi-región) o Qdrant cluster distribuido

Justificación:

  • 20M vectores requiere sharding horizontal → Milvus o Qdrant cluster
  • Multi-región → necesitas replicación cross-region
  • SRE team puede manejar la complejidad operativa
  • Costo infra: ~$3,000-5,000/mes (vs enterprise managed ~$10,000-15,000/mes)
  • Ahorro: $5,000-10,000/mes = $60,000-120,000/año

Checklist de decisión

Antes de comprometerte con un proveedor, verifica cada punto:

Pre-decisión

  • Definí volumen actual de vectores
  • Proyecté volumen a 6 y 12 meses (3 escenarios)
  • Definí requisito de latencia p95 con dato real (no intuición)
  • Identifiqué restricciones de compliance (GDPR, HIPAA, residencia)
  • Calculé capacidad operativa real del equipo (horas disponibles/mes)
  • Calculé TCO completo (no solo precio de servicio) para 2+ opciones
  • Probé al menos 2 opciones con un PoC de 1-2 días cada una

Post-decisión

  • Documenté la decisión y sus razones (ADR - Architecture Decision Record)
  • Definí trigger de reevaluación (fecha o volumen)
  • Implementé capa de abstracción para reducir lock-in
  • Configuré alertas de costo (billing alerts)
  • Establecí proceso de revisión trimestral de TCO

Formato de ADR recomendado

# ADR-XXX: Selección de Vector Database

## Estado: Aceptado

## Contexto
[Descripción del problema y requisitos]

## Decisión
Elegimos [proveedor] en modo [managed/self-hosted].

## Variables evaluadas
| Variable | Valor | Peso |
|----------|-------|------|
| Equipo | ... | ... |
| Budget | ... | ... |
| Escala | ... | ... |
| Latencia | ... | ... |
| Compliance | ... | ... |

## Opciones consideradas
1. [Opción A] - [razón de descarte]
2. [Opción B] - [razón de descarte]
3. [Opción elegida] - [razón de selección]

## Consecuencias
- Positivas: ...
- Negativas: ...
- Riesgos: ...

## Trigger de reevaluación
Reevaluar cuando: [condición específica]

Matriz de decisión rápida

Para decisiones urgentes, usa esta tabla como referencia rápida:

Tu situaciónRecomendación primariaAlternativa
Solo, aprendiendo, $0ChromaDB localPinecone Free
MVP, equipo chico, < 100KPinecone FreeQdrant Cloud Free
Producto early, < 500KQdrant Cloud StandardPinecone Standard
Producción, < 2M, sin DevOpsPinecone StandardWeaviate Cloud
Producción, < 2M, con DevOpsQdrant self-hostedWeaviate self-hosted
Multi-tenant, complianceQdrant/Weaviate self-hosted EUEnterprise managed EU
Enterprise, > 5MMilvus clusterPinecone Enterprise
Ultra-scale, > 50MMilvus cluster dedicadoEvaluación custom

Troubleshooting de selección

1. "No sé si mi escala futura justifica una opción compleja"

Síntoma: Estás entre ChromaDB (simple) y Qdrant (más robusto) y no sabes cuánto vas a crecer.

Diagnóstico: No necesitas predecir el futuro. Necesitas definir un trigger de migración.

Solución:

# Define tu trigger ANTES de elegir
trigger = {
    "volume": "Cuando llegue a 500K vectores",
    "latency": "Cuando p95 > 200ms consistentemente por 1 semana",
    "cost": "Cuando TCO > $500/mes",
    "ops": "Cuando dedique > 8h/mes a operación",
    "date": "Revisión obligatoria en 6 meses (fecha: YYYY-MM-DD)"
}

# Empieza con la opción simple
# Migra solo cuando un trigger se active

2. "Producto pide SLA estricto y equipo no tiene DevOps"

Síntoma: Tu cliente enterprise exige 99.9% uptime pero tu equipo de 3 devs no tiene experiencia en operaciones.

Solución: Managed es la única opción viable. El costo de managed ($200-800/mes) es mucho menor que el costo de un incidente sin DevOps (horas de debugging × impacto en cliente × daño a relación).

Paso concreto: Elige Pinecone Standard o Qdrant Cloud con su SLA incluido. Documenta el SLA del proveedor y preséntalo a tu cliente.

3. "Compliance cambia frecuentemente"

Síntoma: Hoy no tienes requisitos GDPR pero tu equipo de ventas está cerrando clientes en EU.

Solución:

  1. Elige un proveedor que ofrezca residencia de datos en múltiples regiones
  2. Si estás self-hosted, prepara playbook de deploy en nueva región
  3. Incluye el riesgo de compliance en tu cálculo de TCO
  4. Revisa cada trimestre con el equipo legal/compliance

4. "Dos opciones tienen puntaje similar en mi matriz"

Síntoma: Qdrant Cloud y Weaviate Cloud quedan empatados después del análisis.

Solución: Cuando dos opciones son equivalentes en papel, los desempates son:

  1. Prueba técnica: Haz un PoC de 1 día con cada una. La que se sienta mejor en developer experience gana.
  2. Comunidad: ¿Cuál tiene mejor documentación, más ejemplos, comunidad más activa?
  3. Trayectoria: ¿Cuál tiene más momentum? (GitHub stars trend, funding reciente, roadmap público)

5. "Mi equipo quiere la opción que yo no recomendaría"

Síntoma: Tú recomiendas managed pero el equipo quiere self-hosted "para aprender".

Solución: Presenta el análisis con números concretos (TCO, horas de operación, riesgo). Si el equipo aún prefiere self-hosted, negocia: "Ok, self-hosted con un trigger de migración a managed si la operación supera 10h/mes en cualquier mes del primer trimestre."


Ejercicios prácticos

Ejercicio 1: Aplica el Decision Tree a tu proyecto

Recorre el Decision Tree completo con los datos de tu proyecto del módulo:

  1. ¿Necesitas vector DB dedicada? ¿Por qué?
  2. ¿Managed o self-hosted? ¿Por qué?
  3. ¿Qué proveedor específico? ¿Por qué?
Solución ejemplo (proyecto de knowledge base interna)

Nivel 1: ¿> 10K vectores Y < 500ms?

  • Tengo 50K documentos → Sí, necesito vector DB dedicada.

Nivel 2: ¿DevOps dedicado?

  • No, somos 3 devs generalistas → MANAGED
  • ¿Compliance que impida managed? → No
  • ¿Budget > $100/mes? → Sí, $200/mes disponibles

Nivel 3A: ¿Cuántos vectores?

  • 50K ahora, proyección 150K en 6 meses → < 1M
  • ¿Prioridad? → Costo (budget limitado)
  • → Qdrant Cloud Standard (~$33-50/mes)

Decisión: Qdrant Cloud Standard Trigger de reevaluación: Cuando alcance 500K vectores o TCO > $200/mes

Ejercicio 2: Evalúa un caso ajeno

Tu amigo tiene una startup de e-commerce con búsqueda semántica de productos. Datos:

  • Equipo: 2 developers full-stack
  • Budget: $100/mes máximo
  • Productos: 80K SKUs con descripciones
  • Latencia: < 100ms (búsqueda en vivo)
  • Compliance: Ninguno
  • Crecimiento: 10%/mes

¿Qué le recomiendas?

Solución

Análisis por variable:

VariableValorImplicación
Equipo2 devs, sin DevOpsManaged obligatorio
Budget$100/mesFree → Standard tiers
Escala80K → 200K en 6 mesesMedium
Latencia< 100msDescarta pgvector
ComplianceNingunoSin restricción

Recorrido del Decision Tree:

  1. ¿> 10K Y < 500ms? → Sí (80K, < 100ms)
  2. ¿DevOps? → No → MANAGED
  3. ¿80K vectores, budget $100? → Pinecone Free (gratis hasta 100K) o Qdrant Cloud Free

Recomendación: Empezar con Pinecone Free (100K límite). Cuando alcance 100K (2 meses), migrar a Qdrant Cloud Standard ($33/mes, dentro del budget de $100).

Trigger: Migrar cuando llegue a 90K vectores (antes del límite de Pinecone Free).

Ejercicio 3: Escribe un ADR

Documenta tu decisión del Ejercicio 1 en formato ADR completo.

Solución ejemplo
# ADR-001: Selección de Vector Database para Knowledge Base

## Estado: Aceptado (fecha)

## Contexto
Necesitamos búsqueda semántica sobre 50K documentos internos
para un chatbot RAG. El equipo es de 3 devs sin experiencia
en operaciones de infraestructura. Budget: $200/mes.

## Decisión
Elegimos Qdrant Cloud Standard en modo managed.

## Variables evaluadas
| Variable | Valor | Peso |
|----------|-------|------|
| Equipo | 3 devs, sin DevOps | Alto |
| Budget | $200/mes | Alto |
| Escala | 50K → 150K (6mo) | Medio |
| Latencia | < 200ms | Medio |
| Compliance | Ninguno | Bajo |

## Opciones consideradas
1. ChromaDB self-hosted - Descartada: TCO > $1,000/mes por operación
2. Pinecone Standard - Descartada: $150/mes, sobre budget para features que no necesitamos
3. Qdrant Cloud Standard - Elegida: $33-50/mes, performance adecuada, escala hasta 2M

## Consecuencias
- Positivas: Zero-ops, costo bajo, API REST nativa
- Negativas: Lock-in moderado (mitigado con capa de abstracción)
- Riesgos: Pricing puede cambiar

## Trigger de reevaluación
Cuando: volumen > 500K vectores O TCO > $200/mes O latencia p95 > 200ms
Fecha de revisión obligatoria: [6 meses desde hoy]

Ejercicio 4: Compara dos escenarios de crecimiento

Tu producto está en Pinecone Free con 60K vectores. Modela dos futuros:

Escenario A: Crecimiento orgánico (10%/mes) Escenario B: Lanzamiento viral (50%/mes por 3 meses, luego 10%)

Para cada escenario, ¿cuándo necesitas cambiar de tier? ¿Cuánto costará?

Solución
import math

current = 60_000
pinecone_free_limit = 100_000

# Escenario A: 10%/mes
months_a = math.log(pinecone_free_limit / current) / math.log(1.10)
print(f"Escenario A: Límite free en {months_a:.1f} meses")  # ~5.4 meses

# Mes 12 con 10%/mes
vectors_a_12 = current * (1.10 ** 12)
print(f"Escenario A, mes 12: {vectors_a_12:,.0f} vectores")  # ~188K
# Costo: Pinecone Standard ~$80/mes

# Escenario B: 50%/mes × 3, luego 10%/mes
vectors_b = [current]
for m in range(12):
    growth = 1.50 if m < 3 else 1.10
    vectors_b.append(vectors_b[-1] * growth)

for i, v in enumerate(vectors_b):
    if v > pinecone_free_limit:
        print(f"Escenario B: Límite free en mes {i}")  # Mes 2
        break

print(f"Escenario B, mes 12: {vectors_b[12]:,.0f} vectores")  # ~605K
# Costo: Pinecone Standard ~$200/mes o migrar a Qdrant Cloud

# Plan para Escenario B:
# Mes 0-2: Pinecone Free ($0)
# Mes 2-6: Qdrant Cloud Standard ($50/mes, más cost-effective)
# Mes 6+: Evaluar según crecimiento real
EscenarioCambio de tierMes 6 vectoresMes 12 vectoresCosto mes 12
A (10%/mes)Mes 5106K188K~$80/mes
B (viral)Mes 2341K605K~$200/mes

Ejercicio 5: Debate técnico simulado

Tu CTO quiere Pinecone Enterprise ($2,000/mes). Tú crees que Qdrant self-hosted ($500/mes TCO) es suficiente. Prepara 3 argumentos a favor de cada opción con datos.

Solución

A favor de Pinecone Enterprise ($2,000/mes):

  1. Zero-ops: 0 horas/mes de operación vs ~14h/mes self-hosted. Con senior a $100/hr, ahorras $1,400/mes en operación → costo neto comparable.
  2. SLA contractual: 99.99% uptime con penalidades. Self-hosted no tiene SLA y cada hora de downtime cuesta $X en revenue perdido.
  3. Auto-scaling: Black Friday o lanzamiento viral → Pinecone escala automáticamente. Self-hosted requiere provisionar capacidad de antemano.

A favor de Qdrant self-hosted ($500/mes TCO):

  1. Ahorro anual: ($2,000 - $500) × 12 = $18,000/año. Con ese dinero pagas 180 horas de DevOps senior.
  2. Zero lock-in: Open-source, puedes migrar a otro proveedor o cluster sin dependencia propietaria. Pinecone es la opción con mayor lock-in del mercado.
  3. Compliance futuro: Si en 6 meses necesitas HIPAA o datos on-premise, ya estás preparado. Con Pinecone tendrías que migrar (costo: $10,000+).

Resolución sugerida: Empieza con Qdrant Cloud (managed, $250/mes) como compromiso. Si la operación supera expectativas, migra a self-hosted. Si el equipo necesita zero-ops total, evalúa Pinecone Enterprise.

Ejercicio 6: Risk assessment

Identifica los 3 mayores riesgos de tu decisión y cómo los mitigarías.

Solución ejemplo (eligiendo Qdrant Cloud)
RiesgoProbabilidadImpactoMitigación
Qdrant sube precios 50%+MediaAltoCapa de abstracción lista + playbook de migración a self-hosted
Qdrant Cloud tiene outage > 4hBajaAltoBackup diario de vectores. Playbook de failover a ChromaDB local (modo degradado)
Volumen crece 10x en 3 mesesBajaMedioTrigger de reevaluación en 200K vectores. Presupuesto aprobado para tier superior

Costo total de mitigación:

  • Capa de abstracción: 8 horas × $80/hr = $640 (una vez)
  • Playbook de migración: 4 horas × $80/hr = $320 (una vez)
  • Backups: $5/mes (S3)
  • Total: ~$1,000 una vez + $5/mes

ROI de mitigación: Si algún riesgo se materializa, ahorro estimado $5,000-15,000 en respuesta de emergencia.


Conexión con proyecto: Decision Tree

Tu proyecto final del módulo es construir un Decision Tree para selección de vector database. Esta cápsula te da el framework completo. En tu entrega:

  1. Implementa el árbol de decisión con las 5 variables como inputs
  2. Incluye al menos 4 casos de uso con análisis completo
  3. Documenta un ADR para tu propio proyecto
  4. Define triggers de reevaluación para cada recomendación

Resumen

  • 5 variables definen toda decisión: equipo, budget, escala, latencia, compliance.
  • El Decision Tree te da una ruta reproducible, no una opinión. Cualquiera en tu equipo puede seguirlo.
  • Managed es el default para equipos sin DevOps. Self-hosted solo cuando tienes DevOps Y una razón específica (compliance, costo a escala, control).
  • La etapa de producto dicta la prioridad: PoC → velocidad, Validación → costo predecible, Producción → SLA + escalabilidad.
  • Documenta tu decisión como ADR. "¿Por qué no elegimos las otras opciones?" debe tener respuesta clara.
  • Define triggers de reevaluación ANTES de elegir. Nunca te cases con un proveedor.
  • Cuando dos opciones empatan, haz un PoC de 1 día con cada una. Developer experience desempata.

Recursos adicionales

  1. ChromaDB Documentation — Setup local y API reference
  2. Pinecone Documentation — Pricing, quickstart, best practices
  3. Qdrant Documentation — API, deployment, cloud
  4. Weaviate Documentation — Modules, GraphQL, cloud
  5. Milvus Documentation — Cluster setup, sharding, scaling
  6. Architecture Decision Records — Formato y ejemplos de ADRs
  7. CNCF Technology Radar - Databases — Tendencias de adopción
  8. DB-Engines Ranking - Vector DBMS — Ranking actualizado de popularidad

Tiempo estimado: 30-40 minutos
Siguiente: 07-anti-patrones-seleccion.md