Sincronización de Aplicaciones con MuleSoft

Everardo Flores
Another Integration Blog
5 min readDec 13, 2022

Es muy común que las empresas en cierto punto se ven en la necesidad de migrar datos de una aplicación a otra, pero se enfrentan a problemas como duplicidad de datos o reproceso de información en repetidas ocasiones.

La solución a este problema se llama Maraca de Agua (Watermark en inglés).

Watermark es un mecanismo que facilita la sincronización de aplicaciones o sistemas de software. Consta de dos pasos fundamentales.

  • Paso 1 (ejecución por primera vez): En este paso se procesan o trasladan todos los datos del sistema origen hacia el destino.
  • Paso 2 (Ejecuciones posteriores): En este paso únicamente se procesan o trasladan los datos nuevos y los que presentaron alguna modificación.

¿Pero, cómo funciona internamente?

Como su nombre lo indica funciona almacenando una marca o indicador que sirve como referencia para saber qué datos ya se procesaron o migraron al sistema destino. Un ejemplo de esta marca o indicador puede ser el ID máximo procesado en el caso de registros en una tabla de base de datos o bien puede ser la fecha más reciente de modificación de los registros en la tabla.

En el siguiente ejemplo ilustrativo la columna FechaModificacion será de donde obtendremos la marca de agua.

Otro ejemplo de esta marca o indicador puede ser la fecha de modificación de un archivo, cuando se trata de manejo de archivos.

Watermark en MuleSoft

Este mecanismo de sincronización de aplicaciones ya viene por default en algunos conectores de MuleSoft, conectores como:

  • On Table Row (Aplicado a tablas de base de datos)
  • On New Or Updated File (Utilizado para manejo de archivos)

A esta solución de watermark que ya viene integrada en los conectores se le conoce cómo watermark automático. Pero además MuleSoft también nos da la opción de poder implementarla de forma manual, la cual podrá funcionar junto a la mayoría de los conectores disponibles en Anypoint Studio.

El watermark manual se implementa con ayuda del módulo Object Store. En este se almacenará la marca o indicador, para que en las ejecuciones posteriores podamos utilizarla para aplicar la validación que nos permitirá procesar únicamente los datos o archivos nuevos y los actualizados.

¿Qué es Object Store?

Es un componente de MuleSoft que nos permite almacenar objetos en forma de pares Clave-Valor (key-value). Es utilizado para una variedad de casos de uso, pero está diseñado principalmente para almacenar watermarks, access tokens, información del usuario, etc.

Ejemplos de objetos Clave-Valor:

Este módulo ya viene con todas las operaciones necesarias para poder utilizarlo.

Puedes conocer más acerca de este módulo en la documentación oficial de MuleSoft

Simulación de los pasos de Watermark manual usando Object Store

Paso 1 (ejecución por primera vez): En este paso se procesan o trasladan todos los datos del sistema origen hacia el destino.

Origen de Datos:

Valor ingresado en el Object Store: Se identifica y almacena la fecha de modificación más reciente.

Datos en el sistema destino:

Paso 2 (Ejecuciones posteriores): En este paso únicamente se procesan o trasladan los datos nuevos y los que presentaron alguna modificación. Esto con ayuda del valor almacenado en el Object store en el paso anterior. La condición para obtener estos registros sería seleccionar todos los registros de la tabla origen con fecha de modificación mayor al valor almacenado en el Object Store (FechaModificacion > ‘2022–10–06 17:00:25’).

Origen de Datos: En esta ocasión el origen cuenta con dos registros modificados ID’s 1001 y 1005 mas dos registros nuevos ID’s 1006 y 1007

Datos que viajarán al sistema destino según la condición (FechaModificacion > ‘2022–10–06 17:00:25’):

Valor ingresado en el Object Store: Se identifica y almacena la fecha de modificación más reciente en este caso es la fecha de modificación del último registro ingresado.

Datos en el sistema destino:

Conclusión

Todo el proceso para implementar el watermark manual es el mismo que hacen internamente los conectores que implementan el watermark automático. En este último los desarrolladores no se preocuparán por crear y administrar el Object Store y las validaciones, ya que MuleSoft se hará cargo de todo. En general, implementar la correcta sincronización entre aplicaciones es relativamente sencillo con las funcionalidades que MuleSoft nos provee. Pues no es necesario implementar algún algoritmo o lógica de programación adicional para realizarla, únicamente debemos arrastrar y soltar los componentes que necesitamos para poder cumplir con este requerimiento.

--

--

Everardo Flores
Another Integration Blog

MuleSoft Ambassador | MuleSoft Certified Developer | Lead Engineer @ Apisero Inc