Product analytics y embudos de eventos
Fullstack / Arquitectura de datos
Problema
Medir la adopción y los embudos de uso de un producto en etapa temprana, de forma confiable y sin disparar el costo de infraestructura.
Impacto
Visibilidad real del comportamiento del usuario sin incorporar un data warehouse costoso ni un clúster dedicado.
- NestJS
- TimescaleDB
- PostgreSQL
- Next.js
El problema
Un producto en etapa temprana necesitaba entender cómo lo usaban realmente sus usuarios: qué funciones se adoptaban, dónde abandonaban, cómo se comportaban los embudos. El desafío: hacerlo con sensibilidad al costo, sobre una base de datos compartida con otros proyectos, sin convertirse en un vecino ruidoso.
La arquitectura
- Series temporales sobre TimescaleDB: una extensión de PostgreSQL, en vez de un sistema OLAP dedicado. Aprovecha la infraestructura existente.
- Ingesta de eventos que captura el comportamiento y lo stitchea en embudos y métricas de salud del producto.
- Dashboard para que el equipo de negocio lea adopción y retención.
- Aislamiento de recursos cuidadoso para no degradar a los demás servicios del clúster compartido.
Decisiones clave
- TimescaleDB en vez de un data warehouse: para el volumen real, era la opción adecuada y seria sin el costo de un OLAP dedicado. El camino de upgrade quedó documentado para cuando el volumen lo justifique.
- DB compartida con límites explícitos: minimizar CPU, disco y workers de fondo fue un requisito de diseño, no un detalle.
- Métricas calculadas con criterio: definir bien qué significa cada métrica (p. ej. usuarios activos) evita conclusiones engañosas.
Impacto
El equipo obtuvo señales accionables de adopción y comportamiento sin sumar infraestructura cara, respetando el presupuesto de un producto que recién empieza.