Introducción
Palmas sudorosas, manos temblorosas y commits a medianoche para liberar una función crítica de productividad. Todos hemos pasado por eso. La mayoría de esas urgencias se evaporan cuando existe un tablero confiable y fácil de usar que aporte visibilidad sobre KPIs, simplifique la gestión, convierta los giros estratégicos en decisiones basadas en datos y acelere las iteraciones. El reto real no es solo construirlo, sino decidir qué medir, con qué frecuencia, con qué rigor y cómo presentarlo de forma veloz y fiable.
El año pasado, una vez lista la infraestructura base y el backend de nuestro ERP interno, me asignaron mejorar y extender funcionalidades. Yo imaginaba el reconocimiento de fin de año por una mejora que multiplicara por cuatro la eficiencia del equipo comercial. Y entonces llegó el verdadero reto: un tablero a nivel organización con KPIs complejos como eficiencia de llamadas, tiempos de llamada y estados de clientes, preferiblemente en tiempo casi real.
Freshness SLA y su impacto
La frescura del dato, o Freshness SLA, es el acuerdo tácito sobre cuán reciente debe ser la información. En un entorno de trading de alta frecuencia, un segundo de retraso puede costar millones. En un proceso gubernamental de verificación documental para matricular un vehículo, una hora puede ser aceptable. La clave es convertir el deseo genérico de datos recientes, precisos y veloces en una cifra negociada. La pregunta adecuada fue esta: ¿está bien que el dato tenga hasta 15 minutos de antigüedad? A partir de ahí la conversación suele afinarse: quizás 15 es mucho y 5 es aceptable; o 15 está bien pero ni un minuto más; o bien se exige tiempo real a cambio de bajar expectativas de rendimiento. En nuestro caso acordamos una antigüedad máxima de 15 minutos y respuestas por debajo de 3 segundos, idealmente inferiores a 1 segundo para una experiencia de usuario fluida.
Complejidad de los datos y jerarquía
El tablero debía respetar una jerarquía de equipos con usuarios que cambian de designación y agrupación a lo largo del tiempo. Los KPIs combinaban estados de clientes obtenidos del historial de llamadas, cierres basados en indicadores transaccionales y metas por equipo, todo agregado por la jerarquía correcta y por cualquier rango temporal, incluyendo contribuciones de miembros que cambiaron de equipo. El resultado final es un árbol de resultados por líder, equipo y comercial, con métricas como llamadas calientes, llamadas marcadas, eficiencia, cierres y configuraciones SIP, consolidadas en todos los niveles.
Tres caminos posibles
Primero pensamos en caché. Pero cachear estructuras jerárquicas profundas es costoso; la invalidación es compleja; y los fallos de caché son frecuentes para periodos poco solicitados como trimestres o años. Un TTL de 15 minutos habría sido un parche frágil sin mejorar el primer acceso, que seguiría sometido a una consulta pesada.
Luego evaluamos el precálculo por lotes con ETL. Es mejor que el apaño de la caché, pero introduce infraestructura adicional, configuraciones complejas, sensibilidad a cambios de esquema y no es un ajuste perfecto cuando se pide inmediatez.
El tercer enfoque fue el streaming de eventos desde la app móvil hacia el dashboard web, usando una cola como Kafka o alternativas gestionadas. Aunque facilita ingestión y consumo, la realidad es que los KPIs requerían uniones y agregaciones complejas. Procesarlos evento a evento podía penalizar la actualización por debajo del objetivo de 3 segundos.
La solución: refresco incremental con vistas materializadas
Opté por un punto intermedio. Ingerimos eventos en tiempo real mediante Kafka para mantener la base de datos fresca y realizamos las agregaciones con vistas materializadas. La observación clave es que los datos históricos no cambian. Por eso guardamos en la vista materializada todo lo consolidado hasta ayer y lo refrescamos de forma programada. En cada consulta calculamos solo la porción de hoy, independientemente del rango seleccionado, y la sumamos al histórico. Así reducimos el volumen agregado en cada petición y logramos respuestas subsegundo sin renunciar a la precisión.
Gestión de refrescos y bloqueos
El refresco de una vista materializada puede bloquear su lectura durante la operación. Para mitigar, programamos los refrescos en horas valle utilizando pg_cron en PostgreSQL. En entornos AWS RDS, a partir de la versión 12.5, se habilita agregando pg_cron a shared_preload_libraries dentro de un parameter group, aplicando el grupo a la instancia y reiniciando. Luego se crea la extensión y se agenda el refresco periódico de la vista, por ejemplo cada 15 minutos. El historial de ejecuciones se revisa en las tablas de cron del propio esquema. De este modo reducimos la carga operativa sin desplegar infraestructura adicional ni sacrificar el SLA de frescura.
Resultados
Con ingestión por streaming para mantener los datos al día, vistas materializadas para precomputar lo pesado, y refresco incremental para el día en curso, conseguimos un tablero organizacional confiable, con costos contenidos, fácil de mantener y con latencias que satisfacen la experiencia de uso.
Cómo puede ayudarte Q2BSTUDIO
En Q2BSTUDIO diseñamos y construimos tableros de alto rendimiento y plataformas de datos end to end con enfoque en aplicaciones a medida, software a medida y servicios inteligencia de negocio. Integramos desde el ERP o CRM hasta el dashboard ejecutivo, incorporando inteligencia artificial e incluso agentes IA para enriquecer la toma de decisiones. Si buscas transformar tus reportes en una ventaja competitiva, descubre nuestro enfoque en inteligencia de negocio y Power BI.
Operamos en la nube con servicios cloud aws y azure, desplegamos arquitecturas seguras y escalables, y protegemos cada capa con prácticas de ciberseguridad de primer nivel. Si tu ecosistema de datos vive en AWS o Azure, conoce nuestros servicios cloud AWS y Azure y potencia tu plataforma con pipelines eficientes, almacenamiento optimizado y observabilidad real.
Además, llevamos la ia para empresas del discurso a la práctica con casos de uso reales que automatizan procesos, aumentan la productividad y multiplican el valor del dato. Desde la ingestión hasta el insight, pasando por la gobernanza, la ciberseguridad y la visualización con power bi, te acompañamos para que cada decisión esté respaldada por información fresca, consistente y accionable.
Si tu organización necesita un tablero que respire negocio en tiempo real, que escale sin sobresaltos y que convierta KPIs en resultados, hablemos. En Q2BSTUDIO unimos ingeniería, inteligencia artificial y seguridad para construir soluciones que funcionan donde más importa: en el día a día de tu operación.