El contexto
La plataforma de auditoría corporativa de Tendam era responsable del registro, seguimiento y trazabilidad de operaciones internas críticas para la organización. Debido al crecimiento continuo del sistema y a un ciberincidente sufrido por la compañía, se inició un proceso de modernización tecnológica orientado a mejorar la seguridad, la resiliencia y la capacidad de evolución de la plataforma.
El sistema original estaba construido sobre una arquitectura monolítica desarrollada en Java 7 con un elevado acoplamiento entre módulos, dificultando la incorporación de nuevas funcionalidades, incrementando los tiempos de despliegue y limitando tanto el rendimiento como la escalabilidad.
La estrategia de modernización
Se definió una estrategia de migración progresiva hacia una arquitectura basada en microservicios desarrollados con Java 17 y Spring Boot, permitiendo la convivencia entre el sistema legacy y los nuevos servicios durante todo el proceso de transformación.
Cada microservicio fue diseñado siguiendo los principios de Arquitectura Hexagonal y Domain-Driven Design (DDD), desacoplando completamente el dominio de negocio de la infraestructura mediante puertos y adaptadores. Esta aproximación facilitó el mantenimiento, el testing y la evolución independiente de cada servicio.
Arquitectura Reactiva y Event-Driven
La comunicación entre servicios se implementó mediante Apache Kafka siguiendo una Event-Driven Architecture, reduciendo el acoplamiento entre dominios funcionales y permitiendo el procesamiento asíncrono de eventos de auditoría.
Para los servicios con mayor carga de operaciones I/O se adoptó Spring WebFlux y programación reactiva, mejorando el throughput de la plataforma, reduciendo el consumo de recursos y optimizando la gestión de concurrencia en escenarios de alta demanda.
La sincronización entre sistemas se realizó mediante Kafka Connect utilizando Sink Connectors para replicar información desde PostgreSQL hacia MongoDB, desacoplando completamente el procesamiento de datos y facilitando la evolución de la arquitectura.
Estrategia de Persistencia
La plataforma evolucionó hacia una estrategia Polyglot Persistence, utilizando PostgreSQL para la información transaccional y MongoDB para el almacenamiento de auditorías y documentos con esquemas flexibles.
Esta estrategia permitió optimizar el rendimiento de las consultas, mejorar la escalabilidad y adaptar cada tecnología al patrón de acceso más adecuado para cada caso de uso.
Observabilidad
Como parte del rediseño de la plataforma se implementó una estrategia de observabilidad basada en Micrometer para la instrumentación de métricas, Prometheus para su recopilación y Grafana para la construcción de dashboards técnicos y de negocio.
Gracias a esta plataforma fue posible monitorizar el comportamiento de todos los microservicios, identificar cuellos de botella, detectar incidencias de forma proactiva y reducir significativamente el tiempo medio de resolución de problemas en producción.
Calidad, Testing y Rendimiento
La calidad del software se aseguró mediante una estrategia basada en pruebas unitarias, pruebas de integración y pruebas de carga utilizando Apache JMeter para validar el comportamiento del sistema bajo elevados volúmenes de usuarios concurrentes.
La adopción de Spring WebFlux permitió mejorar la eficiencia del procesamiento asíncrono, reduciendo bloqueos de hilos y aumentando significativamente el rendimiento de los servicios más críticos.
Todo el ciclo de vida del software quedó integrado dentro de pipelines CI/CD automatizados, garantizando validaciones continuas, despliegues seguros y una evolución controlada de toda la plataforma.
Resultados
La nueva arquitectura permitió transformar un sistema monolítico difícil de mantener en una plataforma distribuida, desacoplada y preparada para evolucionar de forma continua. La combinación de microservicios, programación reactiva, Kafka y una estrategia moderna de persistencia incrementó notablemente la escalabilidad, el rendimiento y la resiliencia de la plataforma de auditoría.