De 40 a 5 minutos: cómo superamos los desafíos del registro de compra venta (RCV)
En la era de la información, la capacidad de recolectar, procesar y respaldar datos de manera eficiente es fundamental para cualquier negocio. Nuestro desafío es claro: garantizar que la data financiera crítica, como las cartolas bancarias, boletas de honorarios, el Registro de Compra Venta (RCV) y los XML de documentos tributarios (DTE), sea veraz y confiable.
En este contexto, mantener la integridad de los datos no es solo una necesidad operativa, sino una promesa clave para nuestros clientes.
Identificación del problema
A medida que nuestra base de clientes crecía, también lo hacía el volumen de datos que debíamos manejar. Este crecimiento presentó nuevos desafíos, especialmente en el procesamiento del RCV. Uno de nuestros clientes, con más de 40.000 registros entre compras y ventas, reveló varias dificultades:
Tiempo de procesamiento: nuestro algoritmo tardaba hasta 40 minutos en procesar la información, lo que generaba cuellos de botella y desactualización de los datos.
Inconsistencias en los registros: la discrepancia entre el RCV del Servicio de Impuestos Internos (SII) y nuestra base de datos comprometía nuestra capacidad de reflejar fielmente los datos de la fuente original.
Estas dificultades no solo afectaron a nuestros clientes, también pusieron a prueba a nuestro equipo, generando momentos de gran estrés y la necesidad urgente de implementar soluciones efectivas.
¿Qué estrategias implementamos?
Visualización de las empresas afectadas
Para abordar las inconsistencias, nuestro primer paso fue identificar todas las empresas afectadas. Implementamos un enfoque basado en ELT (Extract, Load, Transform) que nos permitió crear un reporte comparativo entre los registros del RCV del SII y los cargados en nuestra base de datos.
Este documento nos proporcionó una visión clara de los periodos descuadrados y las empresas que requerían atención prioritaria. Además, establecimos un sistema de monitoreo con alertas tempranas para detectar futuras inconsistencias, mejorando así nuestra capacidad de respuesta.
2. Optimización del procesador de RCV
La optimización de nuestro algoritmo fue crucial para manejar el creciente volumen de datos. Implementamos estrategias como la partición de consultas (query partitioning), que nos permitió dividirlas en segmentos más pequeños y manejables, mejorando la eficiencia. Asimismo, utilizamos técnicas de procesamiento en memoria (in-memory processing) para cargar todos los datos necesarios de una sola vez, minimizando la necesidad de múltiples consultas a la base de datos.
Separar el proceso de creación y actualización de los registros en un servicio independiente, utilizando funciones Lambda de AWS, fue otro paso clave. Este enfoque de escalabilidad horizontal serverless distribuyó el trabajo de manera más eficiente y asincrónica, reduciendo el tiempo de procesamiento de 40 a un rango de 1 a 5 minutos. Esto no solo incrementó la eficiencia del sistema, también nos permitió cumplir con los tiempos de entrega esperados por nuestros clientes, incluso con un volumen de datos mucho mayor.
3. Mecanismo de verificación de cambios
Para evitar el procesamiento innecesario, implementamos un mecanismo que verifica en el resumen del RCV si hubo cambios desde la última vez que se procesó. Si no hay cambios ni datos nuevos, decidimos no procesarlo nuevamente, lo que nos permite enfocar nuestros recursos solo en los RCV que requieren actualización, mejorando la eficiencia y el uso racional de los recursos.
Impacto y resultados
Las mejoras implementadas no solo solucionaron los problemas técnicos que enfrentábamos, también establecieron una base sólida para manejar un volumen de datos aún mayor en el futuro. Los tiempos de procesamiento se redujeron drásticamente, la integridad de la información se fortaleció, y la satisfacción del cliente se incrementó al garantizar que estuviera siempre actualizada y fuera consistente con las fuentes oficiales.
Lecciones aprendidas y futuro
Esta situación nos enseñó lecciones valiosas sobre la importancia de la escalabilidad, la eficiencia y la innovación continua en el procesamiento de datos. Hoy estamos mejor preparados para enfrentar futuros desafíos, con un equipo fortalecido y una infraestructura optimizada para manejar grandes volúmenes de información de manera efectiva.
El viaje de la optimización del procesamiento del RCV ha sido una experiencia reveladora y transformadora para nuestro equipo. Nos ha permitido no solo superar los problemas existentes, sino también fortalecer nuestra promesa de proporcionar información precisa y confiable.