Saltar contenido

Combinando los principios de la arquitectura basada en eventos con el enfoque de conectividad basado en la API de MuleSoft

Salesforce logo

Muchas organizaciones que se encuentran en proceso de transformación digital tienen la necesidad de conectar sus aplicaciones, datos y dispositivos. El camino hacia el éxito implica pasar a una estrategia de integración basada en APIs. Las APIs desempeñan un papel específico dentro del enfoque de integración de una organización. Permiten desbloquear los datos de los sistemas, componer los datos en los procesos o proporcionar una experiencia. Las API basadas en eventos forman parte de una combinación de tecnologías que ayudan a una organización a lograr una ventaja competitiva con la integración en tiempo real. En este blog, hablaremos de cómo la plataforma Anypoint de MuleSoft ofrece soporte para la arquitectura basada en eventos y cómo se utiliza junto con el enfoque de conectividad basado en API.

Dimensiones de los eventos

  • Programmatic: Enfoque de comunicación principalmente programático por naturaleza, es decir, destinado a la comunicación entre componentes de la aplicación.
  • Meaning: Un evento describe un cambio de estado que se ha producido en un componente de la aplicación, que actúa como productor del evento.
  • Dynamic nature: Un evento describe algo que ya ha ocurrido.
  • Granularity: Un evento suele corresponder a un cambio de estado bien definido.
  • Synchronicity: Los eventos se intercambian de forma asíncrona y, por tanto, el productor y el consumidor de eventos están desacoplados en el tiempo.
  • Communication path: Los eventos son enviados por un productor de eventos a un destino, por ejemplo, cola, tema, intercambio de mensajes, dependiendo del paradigma de mensajería, y luego son recibidos por los consumidores de eventos desde ese destino.
  • Broker: El intercambio de eventos requiere un broker de mensajes, como por ejemplo Anypoint MQ, Kafka, ActiveMQ, or RabbitMQ.
  • Contract: El contrato de un evento es la combinación de destino y tipo de evento (datos) y puede ser descrito por una definición AsyncAPI.

La arquitectura basada en eventos y la conectividad basada en la API funcionan conjuntamente

MuleSoft define la conectividad basada en APIs a través de un enfoque de tres capas. Estas tres capas se componen de APIs de experiencia, APIs de proceso y APIs de sistema.

Aunque los componentes de la aplicación que intercambian eventos pueden organizarse de forma similar, esto no es una parte inherente a una arquitectura basada en eventos.

La conectividad basada en APIs restringe los patrones de comunicación según los tres niveles (esencialmente de arriba a abajo), mientras que los componentes de la aplicación que intercambian eventos no tienen que adherirse a las mismas restricciones de patrones de comunicación.

Una arquitectura basada en eventos requiere un agente de mensajes como componente adicional de la arquitectura tecnológica, y todos los componentes de la aplicación que intercambian eventos tienen que acordar el mismo agente de mensajes.

Los activos centrados en la API publicados para el consumo de autoservicio definen la conectividad dirigida por la API en las redes de aplicaciones. Las implementaciones de las APIs suelen tener dependencias estáticas bien definidas de otras APIs o sistemas backend.

Veamos algunos escenarios que necesitan elementos de la arquitectura basada en eventos

  • Integración con aplicaciones SaaS: Dependen en gran medida de los enfoques de una arquitectura basada en eventos para garantizar una alta disponibilidad y escalabilidad (e.g. event-driven architecture on the Salesforce Customer 360 Platform).
  • Internet of Things: El enorme volumen de eventos transmitidos desde los dispositivos debe ser accesible en tiempo real y a escala, lo que hace que las API sincrónicas de solicitud-respuesta por sí solas no sean razonables.
  • Tolerancia a los fallos: Un sistema está a la escucha de las notificaciones cuando las transacciones o los pedidos en un sistema de comercio electrónico se han cancelado o han fallado.
  • Evitar Sondeos: Procesar las notificaciones (por ejemplo, un pedido se ha actualizado), decidir qué acción tomar y enrutar la respuesta apropiada a un sistema backend en lugar de sondear constantemente los cambios.
  • Sistemas heredados: Necesitan procesar las notificaciones pero sufren problemas de fiabilidad.

El ejemplo siguiente muestra el uso del conector Kafka utilizado para consumir y producir eventos para tratar temas (impulsado por eventos) mientras se sigue el enfoque de conectividad dirigido por la API.

Las ventajas de combinar la arquitectura basada en eventos con la conectividad basada en API

Con un enfoque combinado, se puede reutilizar las API de procesos y sistemas para futuros casos de uso sin tener que reescribir la lógica de transformación y la conectividad con los sistemas backend.

Además, se puede utilizar colas de mensajería para garantizar la ausencia de pérdida de mensajes y aumentar la fiabilidad y solidez de sus aplicaciones informáticas.

Se puede añadir otra herramienta para cubrir las situaciones en las que las API sincrónicas de solicitud-respuesta pueden no ser óptimas.

Buscas generar ingresos impulsados por las APIs

Nuestros más de 25 años de experiencia en integraciones en projectos en todos los sectores, junto con una sólida asociación con MuleSoft, nos permiten guiar a tu organización en todos los retos relacionados con las API. ¿Buscas ayuda? No dudes en ponerte en contacto con nosotros y veremos cómo podemos ayudarnos mutuamente.