En el dinámico mundo tecnológico, la mejora del rendimiento y la optimización de recursos son objetivos prioritarios para empresas que gestionan grandes volúmenes de datos y usuarios. Así lo demostró G+D Netcetera, compañía reconocida por su expertise en soluciones digitales, al lograr multiplicar por cien el rendimiento de su producto estrella utilizado por millones, combinando las potentes herramientas de programación de Clojure con la innovadora plataforma Rama. El núcleo de esta transformación se encuentra en Forward Publishing, un sistema desarrollado por G+D Netcetera que impulsa la publicación digital de numerosos periódicos en Suiza y Alemania. Desde su lanzamiento en 2019, Forward Publishing ha manejado millones de visualizaciones diarias, pero enfrentaba desafíos considerables en cuanto a rendimiento y escalabilidad debido a la complejidad de las reglas para gestionar el contenido y la frecuente actualización de noticias. Este producto tenía una arquitectura inicial que dependía en gran medida de un sistema de caché Varnish para mitigar el costo computacional de generar cada página desde cero en cada visualización.
Sin embargo, dicha estrategia presentaba limitaciones evidentes: la actualización del contenido podía tardar minutos en reflejarse en la página, un problema grave cuando se trataba de noticias urgentes y enlaces dinámicos. Además, el alto volumen de computación impactaba directamente en el rendimiento del sistema de gestión de contenidos (CMS), causando lentitud y hasta interrupciones en ocasiones. El sistema incluso se veía abrumado ante fallos en la caché, lo que generaba caídas en la experiencia del usuario final. La solución llegó con Rama, una plataforma que redefine la forma de gestionar y procesar datos en tiempo real. Su adopción por parte de G+D Netcetera permitió transformar radicalmente la eficiencia de Forward Publishing.
Gracias a Rama, el tiempo de latencia para la actualización del contenido en las páginas se redujo a menos de un segundo desde los varios minutos que tomaba anteriormente. Al mismo tiempo, la carga sobre el CMS prácticamente desapareció, mejorando la estabilidad del sistema y la experiencia del usuario a niveles inéditos. Uno de los aspectos clave de esta metamorfosis tecnológica fue la capacidad de Rama para separar la fuente de la verdad, es decir, la base de datos original, de los índices que responden a las consultas. Esta arquitectura elimina una tensión histórica en el diseño de bases de datos tradicionales donde se busca a la vez mantener la integridad de los datos y optimizar la velocidad de consulta. Rama permitió a G+D Netcetera tener datos plenamente normalizados para asegurar su consistencia, mientras construía vistas denormalizadas incrementales altamente optimizadas para consultas rápidas.
El equipo técnico de G+D Netcetera implementó una topología de microprocesamiento por lotes que mantiene vistas denormalizadas actualizadas continuamente conforme llega nuevo contenido. Así, en lugar de recalcular páginas completas ante cada solicitud o periodo de actualización, el sistema solo realiza actualizaciones incrementales sobre las partes afectadas, logrando una eficiencia mucho mayor y garantizando contenido fresco en todas las páginas casi instantáneamente. En el desarrollo usaron Clojure para su robustez y eficiencia en programación funcional, junto con la API de Rama diseñada para combinar almacenamiento y procesamiento de datos a gran escala. Además, crearon internamente una librería basada en conceptos similares a Pregel para facilitar el procesamiento sobre grafos, lo que les permitió manejar relaciones complejas entre entidades de contenido como artículos, imágenes y videos, así como las dinámicas de consulta y presentación en la web. La flexibilidad de Rama queda patente en sus PStates, o estados particionados, que no se restringen a un tipo único de modelo de datos, sino que permiten definir estructuras óptimas para cada necesidad particular, desde índices similares a los de bases de datos relacionales hasta esquemas especiales para listas dinámicas y consultas incrementales.
Esto facilitó a G+D Netcetera implementar mecanismos sofisticados como un motor de Datalog incremental para generar listas de contenido relevantes y personalizables, vitales para mantener el interés de los lectores y la relevancia editorial. Una consecuencia directa de esta arquitectura eficiente fue la significativa reducción de la infraestructura requerida para operar Forward Publishing. De 18 nodos por cliente que se usaban anteriormente, solo se necesitan ahora 9 con Rama, lo que se traduce en una reducción del 55% en costos de hospedaje en la nube de AWS. Esta optimización no solo impacta positivamente en términos económicos, sino que también mejora la escalabilidad y sostenibilidad del sistema ante futuras demandas. Este nuevo enfoque también permitió redefinir la operación y el modelo de negocio de G+D Netcetera.
El CMS y Forward Publishing, que antes se desplegaban conjuntamente debido a limitaciones técnicas, ahora pueden manejarse de forma independiente. Esto brinda a los clientes mayor flexibilidad para personalizar sus sistemas de gestión de contenidos y simplifica las tareas de DevOps, reduciendo tiempos y costos asociados. Anteriormente, Forward Publishing estaba estrechamente vinculado al CMS Livingdocs, y adaptar la solución a otro sistema implicaba un considerable esfuerzo técnico. Ahora, la plataforma puede integrarse con cualquier CMS con solo unas líneas de código para ingerir los datos hacia Rama, abriendo un abanico de posibilidades para ampliar el mercado y adaptarse a distintos entornos tecnológicos. El aprendizaje y adopción de Rama por parte del equipo de G+D Netcetera supuso un reto inicial, especialmente en la comprensión de los “batch blocks”, bloques de procesamiento por lotes que son el núcleo para realizar operaciones complejas similares a las consultas en bases de datos relacionales, como joins y agregaciones.
Sin embargo, una inversión de aproximadamente dos semanas por ingeniero resultó ser altamente rentable dada la mejora espectacular en rendimiento y estabilidad. A nivel arquitectónico, la implementación de Rama incluye varios módulos y topologías especializados. Forward Publishing está dividido en dos módulos principales: uno se encarga de la gestión de contenido con múltiples depósitos y topologías de microprocesamiento y de flujo en tiempo real, mientras que el otro gestiona preferencias de usuario. Las topologías de flujo ofrecen latencias de actualización en milisegundos, indispensables para características interactivas, y las microbatch permiten trabajos con mayor capacidad computacional y throughput para procesamiento de datos más pesado, todo integrado de forma transparente y robusta. Dentro de las innovaciones implementadas están topologías que gestionan alias de entidades, marcadores de páginas, historial de artículos leídos, redirecciones URL y segmentación geográfica de usuarios, entre otros.