Saltar a contenido

Capítulo 3: Canales de Mensajería

Introducción

El capítulo anterior introdujo Message Channel como concepto fundacional: el conducto lógico por donde fluyen los mensajes. Este capítulo profundiza en ese concepto, descomponiendo las variantes específicas de canales que un arquitecto de integración debe conocer y aplicar.

La decisión de "usar un canal" es solo el principio. Las preguntas que siguen son las que realmente definen el comportamiento de la arquitectura:

  • ¿El mensaje debe llegar a un consumidor o a todos los consumidores?
  • ¿Cómo se manejan mensajes que no pueden ser procesados?
  • ¿Cómo se garantiza que un mensaje no se pierde aunque fallen componentes?
  • ¿Cómo se conecta un sistema que no habla el protocolo del broker?
  • ¿Cómo se unen dos sistemas de mensajería diferentes?
  • ¿Cómo se construye una infraestructura compartida de integración?

Cada patrón de este capítulo responde una de estas preguntas.

Los Nueve Patrones de Canales

Patrón Pregunta que responde Semántica
Point-to-Point Channel ¿Cómo se entrega un mensaje a exactamente un consumidor? Competencia
Publish-Subscribe Channel ¿Cómo se entrega un mensaje a todos los consumidores interesados? Distribución
Datatype Channel ¿Cómo se asegura que un canal transporta un solo tipo de mensaje? Tipado
Invalid Message Channel ¿Dónde van los mensajes que un consumidor no puede entender? Error handling
Dead Letter Channel ¿Dónde van los mensajes que el sistema no puede entregar? Error handling
Guaranteed Delivery ¿Cómo se asegura que un mensaje no se pierde aunque fallen componentes? Confiabilidad
Channel Adapter ¿Cómo se conecta un sistema que no habla el protocolo del broker? Conectividad
Messaging Bridge ¿Cómo se conectan dos sistemas de mensajería diferentes? Interoperabilidad
Message Bus ¿Cómo se construye una infraestructura de integración compartida? Infraestructura

Decisiones Arquitectónicas que Estos Patrones Informan

Los patrones de este capítulo no son opciones independientes que se eligen a la carta. Son dimensiones de decisión que aplican a cada canal que se diseña:

  1. Semántica de distribución: todo canal es Point-to-Point, Publish-Subscribe, o una combinación (fan-out + competing consumers). Esta es la primera decisión.

  2. Manejo de mensajes problemáticos: todo canal necesita una estrategia para mensajes que no pueden procesarse (Invalid Message Channel) y mensajes que no pueden entregarse (Dead Letter Channel). Sin estas estrategias, los mensajes problemáticos envenenan el canal.

  3. Garantía de entrega: todo canal debe declarar si ofrece Guaranteed Delivery o si acepta posible pérdida. Esta decisión tiene impacto directo en performance y costo.

  4. Conectividad de sistemas: cuando un sistema no habla el protocolo nativo del broker, se necesita un Channel Adapter. Cuando se integran dos brokers diferentes, se necesita un Messaging Bridge.

  5. Arquitectura de integración: si la organización quiere una infraestructura compartida con canónica de datos, se diseña un Message Bus. Si prefiere point-to-point entre sistemas, se diseñan canales directos.

Relación con el Capítulo Anterior

Mientras que el Capítulo 2 definió qué es un canal (concepto abstracto), este capítulo define qué tipos de canales existen y cómo se configuran para resolver problemas específicos. Es la transición de la ontología a la tipología.

Mapa del Capítulo

Patrón Función Vigencia
Point-to-Point Channel Entrega competitiva a un consumidor Alta
Publish-Subscribe Channel Distribución a todos los consumidores Alta
Datatype Channel Tipado semántico de canales Alta
Invalid Message Channel Manejo de mensajes incomprensibles Alta
Dead Letter Channel Manejo de mensajes no entregables Alta
Guaranteed Delivery Persistencia y confiabilidad Alta
Channel Adapter Conectividad con sistemas no-messaging Alta
Messaging Bridge Interoperabilidad entre brokers Media
Message Bus Infraestructura compartida de integración Media

A continuación, cada tipo de canal se analiza en profundidad.