{"id":23191,"date":"2023-01-17T10:00:49","date_gmt":"2023-01-17T09:00:49","guid":{"rendered":"https:\/\/codeoscopic.com\/?p=23191"},"modified":"2023-01-17T10:43:13","modified_gmt":"2023-01-17T09:43:13","slug":"asegurando-la-veracidad-integridad-y-disponibilidad-de-la-informacion-a-traves-del-dato-unico","status":"publish","type":"post","link":"https:\/\/codeoscopic.com\/en\/asegurando-la-veracidad-integridad-y-disponibilidad-de-la-informacion-a-traves-del-dato-unico\/","title":{"rendered":"Asegurando la veracidad, integridad y disponibilidad de la informaci\u00f3n a trav\u00e9s del dato \u00fanico"},"content":{"rendered":"<ul>\r\n \t<li>\r\n<h3>Aprende c\u00f3mo el Workspace de Codeoscopic soluciona los problemas de veracidad, integridad y disponibilidad de la informaci\u00f3n utilizando Aurora Serverless v2 de Amazon Web Services y Apache Kafka.<\/h3>\r\n<\/li>\r\n<\/ul>\r\nEs muy com\u00fan necesitar la misma informaci\u00f3n en las diferentes herramientas que utilizamos en nuestro d\u00eda a d\u00eda. Almacenamos datos de clientes en nuestro ERP, nuestro CRM, nuestro tel\u00e9fono m\u00f3vil, etc. Pero\u2026 \u00bfQu\u00e9 pasa cuando, por ejemplo, un cliente contrata una p\u00f3liza nueva? \u00bfY si cambia de tel\u00e9fono? \u00bfNos acordaremos de actualizarlo en todas las aplicaciones? De no ser as\u00ed, el d\u00eda que queramos hacer uso de esos datos puede que no obtengamos la informaci\u00f3n correcta.\r\n<blockquote>La soluci\u00f3n a la integridad de los datos consiste en centralizar toda la informaci\u00f3n compartida entre las aplicaciones en un \u00fanico lugar: Codeoscopic \u201cAgora\u201d<\/blockquote>\r\nLa soluci\u00f3n a este problema consiste en centralizar toda la informaci\u00f3n compartida entre las aplicaciones en un \u00fanico lugar, el cual hemos llamado en Codeoscopic \u201cAgora\u201d. Aunque a nivel de concepto parece algo sencillo, surgieron una serie de retos que tuvimos que solucionar.\r\n\r\nPor un lado, era necesario que esa informaci\u00f3n siempre estuviera disponible. No pod\u00eda afectar el nivel de uso de las aplicaciones al rendimiento de Agora. Cada vez habr\u00eda m\u00e1s informaci\u00f3n, ya que en el Workspace se generan y actualizan diariamente decenas de miles de proyectos. A esto hab\u00eda que sumarle la enorme cantidad de consultas diarias generadas por los usuarios de las m\u00e1s de 1700 corredur\u00edas que trabajan con nosotros. Centr\u00e1ndonos en los n\u00fameros, cada d\u00eda se realizan alrededor de 15.000 multi-cotizaciones (contra m\u00faltiples aseguradoras) sobre una media de 6 aseguradoras lo que determina unos 60 precios diferentes por cotizaci\u00f3n (cada aseguradora devuelve varias modalidades de producto comercial). Esto son 900.000 precios al d\u00eda, 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\u00f3lizas diarias (que representan a lo largo del mes unos 15 millones de Euros de primas emitidas). Como ejemplo, la producci\u00f3n en Avant2 Sales Manager de Autos representa m\u00e1s de un 20% de toda la nueva producci\u00f3n de Autos del Canal Corredor de toda Espa\u00f1a (por cualquier medio: tarificadores, p\u00e1ginas de la aseguradoras, etc, etc&#8230;)\r\n<blockquote>La producci\u00f3n en Avant2 Sales Manager de Autos representa m\u00e1s de un 20% de toda la nueva producci\u00f3n de Autos del Canal Corredor de toda Espa\u00f1a<\/blockquote>\r\nAdem\u00e1s, en nuestro negocio existen picos de uso de las aplicaciones en horario comercial. Una arquitectura cl\u00e1sica de servidor local nos hubiera llevado a tener una m\u00e1quina sobredimensionada para poder atender esos picos, algo impensable a nivel de costes y escalabilidad. Por tanto, la soluci\u00f3n de Groucho Marx de \u201cm\u00e1s madera\u201d para poder solventar la situaci\u00f3n 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\u00e1tico bajo demanda. Una tecnolog\u00eda que nos permit\u00eda superar este primer reto ajustando los costes a las necesidades en tiempo real.\r\n<div style=\"margin-bottom: 40px; text-align: center; font-size: 15px;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-23250 size-full\" style=\"margin-bottom: 0;\" src=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2023\/01\/DatoUnico-01-1.jpg\" alt=\"\" width=\"895\" height=\"548\" srcset=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2023\/01\/DatoUnico-01-1.jpg 895w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2023\/01\/DatoUnico-01-1-300x184.jpg 300w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2023\/01\/DatoUnico-01-1-768x470.jpg 768w\" sizes=\"auto, (max-width: 895px) 100vw, 895px\" \/><i>Imagen 1: Cotizaciones diarias por hora del ramo de Autos.<\/i><\/div>\r\nPor otro lado, cuando se actualizaba o se introduc\u00eda informaci\u00f3n nueva en cualquiera de las aplicaciones, al trasladar esa informaci\u00f3n a Agora \u00e9sta deber\u00eda de informar al resto de los cambios. Despu\u00e9s de realizar varias pruebas de concepto, decidimos utilizar Apache Kafka, un proyecto de c\u00f3digo abierto que tiene como objetivo la intermediaci\u00f3n de mensajes bajo el patr\u00f3n de publicaci\u00f3n-suscripci\u00f3n, es decir, nos permite realizar streaming para que Agora notifique en tiempo real los cambios que se han producido en el dato \u00fanico al resto de servicios interesados en esa informaci\u00f3n.\r\n<div style=\"margin-bottom: 40px; text-align: center; font-size: 15px;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-23251 size-full\" style=\"margin-bottom: 0;\" src=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2023\/01\/DatoUnico-02.png\" alt=\"\" width=\"895\" height=\"559\" srcset=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2023\/01\/DatoUnico-02.png 895w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2023\/01\/DatoUnico-02-300x187.png 300w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2023\/01\/DatoUnico-02-768x480.png 768w\" sizes=\"auto, (max-width: 895px) 100vw, 895px\" \/><i><i>Imagen 2: <\/i><\/i><i>Esquema de flujo de operaciones e infraestructura<\/i><i>.<\/i><\/div>\r\n\u00a1Y con esto ya tenemos nuestro potente sistema de dato \u00fanico que permite compartir toda la informaci\u00f3n en tiempo real entre las aplicaciones de Codeoscopic Workspace, con capacidad ilimitada y optimizando costes!\r\n<div style=\"width: 100%;\">Javier Barrachina\r\nProject manager Middleware and Architecture<\/div>\r\n&nbsp;","protected":false},"excerpt":{"rendered":"Aprende c\u00f3mo el Workspace de Codeoscopic soluciona los problemas de veracidad, integridad y disponibilidad de la informaci\u00f3n utilizando Aurora Serverless v2 de Amazon Web Services y Apache Kafka con nuestro sistema de dato \u00fanico que permite compartir toda la informaci\u00f3n en tiempo real entre las aplicaciones de Codeoscopic Workspace","protected":false},"author":13,"featured_media":23350,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[17],"tags":[291,288,292,290,117,98,163,282],"class_list":["post-23191","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tecnologia","tag-agora","tag-amazon-web-services","tag-apache-kafka","tag-aws","tag-codeoscopic","tag-tecnologia","tag-versus-analytics","tag-workspace"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/posts\/23191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/comments?post=23191"}],"version-history":[{"count":0,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/posts\/23191\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/media\/23350"}],"wp:attachment":[{"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/media?parent=23191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/categories?post=23191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/tags?post=23191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}