Enterprise Service Bus vs API Gateway

Enterprise Service Bus (ESB)

Es una infraestructura de comunicación que facilita la interacción y el intercambio de datos entre diferentes componentes o servicios de una aplicación o sistema.

  • Propósito principal: Un bus de servicios es una infraestructura de comunicación que se utiliza para permitir la comunicación y la integración entre diferentes componentes o servicios en una arquitectura distribuida. Su principal función es permitir que los servicios se comuniquen de manera asíncrona y distribuida.
  • Características clave
    • Comunicación asíncrona: Los servicios pueden enviar mensajes al bus de servicios y luego continuar con su trabajo sin esperar una respuesta inmediata. 
    • Integración flexible: Los servicios pueden estar escritos en diferentes lenguajes de programación y pueden comunicarse a través del bus. 
    • Tolerancia a fallos: Puede manejar problemas como la caída temporal de servicios y garantizar que los mensajes se entreguen cuando sea posible. 
  • Ejemplo de Uso: Un servicio de procesamiento de pedidos puede enviar un mensaje al bus de servicios para notificar a otros servicios que se ha realizado un nuevo pedido. Los servicios de inventario y facturación pueden suscribirse al bus para recibir estos mensajes y realizar las acciones correspondientes. 

Un bus de servicios puede utilizar colas de mensajes o canales de comunicación para transmitir los mensajes entre los servicios. Algunos ejemplos de tecnologías que pueden utilizarse para implementar un bus de servicios incluyen RabbitMQ, Apache Kafka y Microsoft Azure Service Bus.

enterprise-service-bus

API Gateway

Actúa como punto de entrada único para todas las solicitudes de API en una aplicación o sistema. 

  • Propósito Principal: Un API Gateway es un componente que actúa como punto de entrada único para todas las solicitudes de API en una aplicación distribuida. Su función principal es gestionar las solicitudes de clientes, enrutarlas a los servicios adecuados y proporcionar características como autenticación, autorización, caching y monitoreo. 
  • Características Clave
    • Enrutamiento de solicitudes: El API Gateway decide a qué servicio debe enviarse una solicitud en función de la ruta o el contexto de la solicitud. 
    • Seguridad: Puede aplicar políticas de seguridad, autenticación y autorización antes de que una solicitud llegue a un servicio. 
    • Monitoreo y análisis: Ofrece capacidades de seguimiento y supervisión para las solicitudes y respuestas. 
    • Agregación: Puede combinar datos de múltiples servicios en una única respuesta para reducir la complejidad para el cliente. 
  • Ejemplo de Uso: Un cliente de una aplicación web envía una solicitud al API Gateway con la URL "/products". El API Gateway enruta esta solicitud al servicio de catálogo de productos correspondiente y luego devuelve la lista de productos al cliente.
api-gateway

Resumen 

Un bus de servicios se centra en la comunicación asíncrona y la integración entre servicios, mientras que un API Gateway se enfoca en la gestión de las solicitudes de clientes, el enrutamiento y la exposición de APIs de manera segura y controlada. En muchas arquitecturas distribuidas, estos dos componentes pueden coexistir y desempeñar roles complementarios para garantizar la eficiencia y la seguridad de las operaciones del sistema.
En definitiva; un API Gateway está más orientado a exponer y controlar servicios para su consumo externo, y se enfoca en proporcionar una interfaz unificada para los clientes externos, con funciones adicionales como la limitación de velocidad; por otro lado el ESB establece relaciones bidireccionales entre servicios internos, permitiendo que los servicios actúen tanto como proveedores como consumidores de otros servicios dentro de la arquitectura de la empresa, lo que facilita la creación de flujos de trabajo y procesos más complejos que involucran múltiples servicios en cooperación.

Comentarios

Entradas populares