17 January, 2023 Technology

Asegurando la veracidad, integridad y disponibilidad de la información a través del dato único

  • Aprende cómo el Workspace de Codeoscopic soluciona los problemas de veracidad, integridad y disponibilidad de la información utilizando Aurora Serverless v2 de Amazon Web Services y Apache Kafka.

Es muy común necesitar la misma información en las diferentes herramientas que utilizamos en nuestro día a día. Almacenamos datos de clientes en nuestro ERP, nuestro CRM, nuestro teléfono móvil, etc. Pero… ¿Qué pasa cuando, por ejemplo, un cliente contrata una póliza nueva? ¿Y si cambia de teléfono? ¿Nos acordaremos de actualizarlo en todas las aplicaciones? De no ser así, el día que queramos hacer uso de esos datos puede que no obtengamos la información correcta.

La solución a la integridad de los datos consiste en centralizar toda la información compartida entre las aplicaciones en un único lugar: Codeoscopic “Agora”

La solución a este problema consiste en centralizar toda la información compartida entre las aplicaciones en un único lugar, el cual hemos llamado en Codeoscopic “Agora”. Aunque a nivel de concepto parece algo sencillo, surgieron una serie de retos que tuvimos que solucionar.

Por un lado, era necesario que esa información siempre estuviera disponible. No podía afectar el nivel de uso de las aplicaciones al rendimiento de Agora. Cada vez habría más información, ya que en el Workspace se generan y actualizan diariamente decenas de miles de proyectos. A esto había que sumarle la enorme cantidad de consultas diarias generadas por los usuarios de las más de 1700 corredurías que trabajan con nosotros. Centrándonos en los números, cada día se realizan alrededor de 15.000 multi-cotizaciones (contra múltiples aseguradoras) sobre una media de 6 aseguradoras lo que determina unos 60 precios diferentes por cotización (cada aseguradora devuelve varias modalidades de producto comercial). Esto son 900.000 precios al día, lo que supone que al mes recolectamos alrededor de 25 millones de precios diferentes. De esta cantidad de oferta, se emiten una media de 2.750 pólizas diarias (que representan a lo largo del mes unos 15 millones de Euros de primas emitidas). Como ejemplo, la producción en Avant2 Sales Manager de Autos representa más de un 20% de toda la nueva producción de Autos del Canal Corredor de toda España (por cualquier medio: tarificadores, páginas de la aseguradoras, etc, etc…)

La producción en Avant2 Sales Manager de Autos representa más de un 20% de toda la nueva producción de Autos del Canal Corredor de toda España

Además, en nuestro negocio existen picos de uso de las aplicaciones en horario comercial. Una arquitectura clásica de servidor local nos hubiera llevado a tener una máquina sobredimensionada para poder atender esos picos, algo impensable a nivel de costes y escalabilidad. Por tanto, la solución de Groucho Marx de “más madera” para poder solventar la situación no era viable. Analizando los servicios de bases de datos relacionales (RDS) disponibles en Amazon Web Services, decidimos utilizar Aurora Serverless v2, un servicio de base de datos relacional que permite el escalado automático bajo demanda. Una tecnología que nos permitía superar este primer reto ajustando los costes a las necesidades en tiempo real.

Imagen 1: Cotizaciones diarias por hora del ramo de Autos.

Por otro lado, cuando se actualizaba o se introducía información nueva en cualquiera de las aplicaciones, al trasladar esa información a Agora ésta debería de informar al resto de los cambios. Después de realizar varias pruebas de concepto, decidimos utilizar Apache Kafka, un proyecto de código abierto que tiene como objetivo la intermediación de mensajes bajo el patrón de publicación-suscripción, es decir, nos permite realizar streaming para que Agora notifique en tiempo real los cambios que se han producido en el dato único al resto de servicios interesados en esa información.

Imagen 2: Esquema de flujo de operaciones e infraestructura.

¡Y con esto ya tenemos nuestro potente sistema de dato único que permite compartir toda la información en tiempo real entre las aplicaciones de Codeoscopic Workspace, con capacidad ilimitada y optimizando costes!

Javier Barrachina
Project manager Middleware and Architecture