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:
-
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.
-
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.
-
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.
-
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.
-
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.