Enterprise Integration Patterns
Catálogo pessoal baseado nos Messaging Patterns do site Enterprise Integration Patterns, de Gregor Hohpe e Bobby Woolf, que resume o livro Enterprise Integration Patterns (2003). Os Conversation Patterns do site ficam fora do escopo. Cada padrão tem descrição, problemas que resolve, quando usar, trade-offs, etiquetas (pilares do Well-Architected Framework) e um diagrama Mermaid.
Padrões marcados com ★ são compartilhados com outro catálogo: este catálogo aponta para o documento original, revisado com o conteúdo desta fonte.
Total: 65 padrões em 7 grupos. Etiquetas: Pilares do Well-Architected Framework.
Grupos
- Integration Styles (4)
- Messaging Channels (10)
- Message Construction (10)
- Message Routing (14)
- Message Transformation (7)
- Messaging Endpoints (12)
- System Management (8)
Integration Styles (4)
| Padrão | Resumo | Etiquetas |
|---|---|---|
| File Transfer | Em File Transfer, cada aplicação produz arquivos com as informações que outras aplicações precisam e consome arquivos gerados pelas demais. | Cost Optimization Operational Excellence |
| Shared Database ★ | No padrão Shared Database, todos os serviços utilizam um único banco de dados. | Reliability Operational Excellence |
| Remote Procedure Invocation ★ | Remote Procedure Invocation (RPI) é o estilo de comunicação em que um cliente envia uma requisição a um serviço usando um protocolo síncrono de requisição/resposta, como se estivesse invocando um procedimento remoto. | Reliability Performance Efficiency Operational Excellence |
| Messaging ★ | No padrão Messaging, os serviços se comunicam trocando mensagens por canais de mensagens, de forma assíncrona. | Reliability Performance Efficiency Operational Excellence |
Messaging Channels (10)
| Padrão | Resumo | Etiquetas |
|---|---|---|
| Message Channel | O Message Channel é o caminho lógico pelo qual duas aplicações trocam mensagens. | Reliability Operational Excellence |
| Point-to-Point Channel | O Point-to-Point Channel garante que cada mensagem enviada seja consumida por exatamente um receptor. | Reliability Performance Efficiency |
| Publish-Subscribe Channel ★ | O padrão Publisher-Subscriber (pub/sub) permite que uma aplicação anuncie eventos de forma assíncrona a vários consumidores interessados, sem conhecer quem são eles. | Reliability Security Cost Optimization Operational Excellence Performance Efficiency |
| Datatype Channel | O Datatype Channel dedica um canal a cada tipo de dado. | Reliability Operational Excellence |
| Invalid Message Channel | O Invalid Message Channel é um canal separado para onde o receptor desvia as mensagens que recebeu mas não consegue entender ou processar, por exemplo por formato incorreto, campos ausentes ou conteúdo que viola o contrato esperado. | Reliability Operational Excellence |
| Dead Letter Channel | O Dead Letter Channel é o destino para onde o sistema de mensageria move uma mensagem que decidiu não poder ou não dever entregar. | Reliability Operational Excellence |
| Guaranteed Delivery | O Guaranteed Delivery faz o sistema de mensageria tornar as mensagens persistentes, de modo que não se percam se o próprio sistema falhar. | Reliability Cost Optimization |
| Channel Adapter | O Channel Adapter conecta uma aplicação que não sabe enviar nem receber mensagens ao sistema de mensageria. | Operational Excellence Performance Efficiency |
| Messaging Bridge ★ | O Messaging Bridge conecta sistemas que usam infraestruturas de mensageria diferentes (por exemplo, um broker legado on-premises e um serviço de filas na nuvem) e repassa mensagens entre elas. | Cost Optimization Operational Excellence |
| Message Bus | O Message Bus é uma arquitetura de integração em que várias aplicações existentes, heterogêneas, cooperam por meio de uma infraestrutura comum de mensageria, permanecendo desacopladas. | Operational Excellence Performance Efficiency |
Message Construction (10)
| Padrão | Resumo | Etiquetas |
|---|---|---|
| Message | Message é a unidade básica de troca em integração por mensageria: um registro de dados que o sistema de mensageria sabe transportar por um canal. | Reliability Operational Excellence |
| Command Message | Command Message é uma mensagem comum cujo conteúdo é uma ordem: pede que outra aplicação execute um procedimento. | Reliability Operational Excellence |
| Document Message | Document Message transporta uma estrutura de dados de uma aplicação para outra. | Reliability Performance Efficiency |
| Event Message | Event Message é uma mensagem que notifica, de forma assíncrona, que algo aconteceu. | Reliability Performance Efficiency |
| Request-Reply | A mensageria é naturalmente unidirecional. | Reliability Performance Efficiency |
| Return Address | Return Address faz o requestor indicar, na própria mensagem de requisição, para onde a resposta deve ser enviada. | Reliability Operational Excellence |
| Correlation Identifier | Correlation Identifier permite que o requestor saiba a qual requisição uma resposta se refere. | Reliability Operational Excellence |
| Message Sequence | Message Sequence trata dados grandes demais para caber em uma única mensagem. | Reliability Performance Efficiency |
| Message Expiration | Message Expiration permite ao emissor definir por quanto tempo uma mensagem continua válida. | Reliability Cost Optimization Performance Efficiency |
| Format Indicator | Format Indicator inclui em cada mensagem um marcador que identifica o formato de seus dados. | Reliability Operational Excellence |
Message Routing (14)
| Padrão | Resumo | Etiquetas |
|---|---|---|
| Pipes and Filters ★ | O padrão Pipes and Filters decompõe uma tarefa de processamento complexa em uma sequência de etapas independentes e reutilizáveis. | Reliability |
| Message Router | O Message Router é um tipo especial de filtro que fica entre canais de mensagens. | Operational Excellence Performance Efficiency |
| Content-Based Router | O Content-Based Router examina o conteúdo de cada mensagem e a envia para um canal escolhido a partir dos dados dela. | Operational Excellence Performance Efficiency |
| Message Filter | O Message Filter é um roteador especializado com um único canal de saída. | Performance Efficiency Cost Optimization |
| Dynamic Router | O Dynamic Router é um roteador que monta suas próprias regras em tempo de execução. | Operational Excellence Performance Efficiency |
| Recipient List | O Recipient List roteia uma mensagem para uma lista de destinatários determinada dinamicamente, como a lista de destinatários de um e-mail. | Reliability Performance Efficiency |
| Splitter | O Splitter consome uma mensagem que contém uma lista de elementos repetidos e publica uma mensagem separada para cada elemento, ou para um subconjunto deles. | Performance Efficiency Reliability |
| Aggregator | O Aggregator é um filtro com estado que fica entre o fluxo de mensagens de entrada e a próxima etapa. | Reliability Performance Efficiency |
| Resequencer | O Resequencer é um filtro com estado que coleta e reordena mensagens antes de publicá-las. | Reliability |
| Composed Message Processor | O Composed Message Processor trata uma mensagem composta: divide-a em submensagens, envia cada uma ao destino adequado e depois mescla as respostas em uma única mensagem. | Performance Efficiency Operational Excellence |
| Scatter-Gather | O Scatter-Gather envia uma requisição a vários destinatários e usa um Aggregator para coletar as respostas e combiná-las em uma só. | Performance Efficiency Reliability |
| Routing Slip | O Routing Slip resolve o caso em que uma mensagem deve passar por uma sequência de etapas que não é fixa e pode variar de uma mensagem para outra. | Operational Excellence Performance Efficiency |
| Process Manager | O Process Manager é um coordenador central que mantém o estado de uma sequência de etapas e decide o próximo passo com base nos resultados até o momento. | Reliability Operational Excellence |
| Message Broker | O Message Broker coloca um intermediário central entre remetentes e receptores. | Operational Excellence Performance Efficiency |
Message Transformation (7)
| Padrão | Resumo | Etiquetas |
|---|---|---|
| Message Translator | O Message Translator é um componente (um filtro no estilo Pipes and Filters) colocado entre dois participantes de uma integração para converter o formato de uma mensagem em outro. | Operational Excellence Performance Efficiency |
| Envelope Wrapper | O Envelope Wrapper envolve os dados de uma aplicação em um "envelope" que atende aos requisitos da infraestrutura de mensageria e, no destino, remove esse envelope para devolver os dados originais. | Security Operational Excellence |
| Content Enricher | O Content Enricher é um transformador especializado que completa uma mensagem com dados que o destinatário precisa e que o remetente não enviou. | Operational Excellence Performance Efficiency |
| Content Filter | O Content Filter remove de uma mensagem os campos que o destinatário não precisa, entregando uma versão mais simples e enxuta. | Security Performance Efficiency |
| Claim Check ★ | O padrão Claim Check separa o armazenamento do conteúdo (payload) da entrega da mensagem. | Reliability Security Cost Optimization Performance Efficiency |
| Normalizer | O Normalizer processa mensagens semanticamente equivalentes que chegam em formatos diferentes e as converte para um único formato comum. | Operational Excellence Reliability |
| Canonical Data Model | O Canonical Data Model define um formato de dados comum, independente de qualquer aplicação, que passa a ser a "língua franca" da integração. | Operational Excellence Reliability |
Messaging Endpoints (12)
| Padrão | Resumo | Etiquetas |
|---|---|---|
| Message Endpoint | Message Endpoint é a camada que conecta uma aplicação a um canal de mensageria. | Reliability Operational Excellence |
| Messaging Gateway | Messaging Gateway é uma classe que encapsula todo o acesso ao sistema de mensageria e expõe à aplicação uma interface em termos do domínio. | Operational Excellence Reliability |
| Messaging Mapper | Messaging Mapper é um componente separado que converte entre objetos de domínio e mensagens. | Operational Excellence Performance Efficiency |
| Transactional Client | Transactional Client torna transacional a sessão do cliente com o sistema de mensageria, de modo que o próprio cliente define os limites da transação. | Reliability |
| Polling Consumer | Polling Consumer é um consumidor que só recebe uma mensagem quando a aplicação pede. | Performance Efficiency Operational Excellence |
| Event-Driven Consumer | Event-Driven Consumer é um consumidor que o próprio sistema de mensageria invoca quando uma mensagem chega ao canal, por meio de um callback. | Performance Efficiency Cost Optimization |
| Competing Consumers ★ | O padrão Competing Consumers permite que várias instâncias consumidoras processem, de forma concorrente, mensagens recebidas pelo mesmo canal de mensageria. | Reliability Cost Optimization Performance Efficiency |
| Message Dispatcher | Message Dispatcher coordena vários consumidores de um mesmo canal. | Performance Efficiency Reliability |
| Selective Consumer | Selective Consumer é um consumidor que filtra as mensagens do canal e aceita somente as que atendem a seus critérios. | Performance Efficiency Cost Optimization |
| Durable Subscriber | Durable Subscriber é um assinante de um Publish-Subscribe Channel cuja assinatura sobrevive à sua desconexão. | Reliability |
| Idempotent Receiver ★ | O padrão Idempotent Consumer projeta consumidores de mensagens de forma que processar a mesma mensagem mais de uma vez produza exatamente o mesmo efeito que processá-la uma única vez. | Reliability |
| Service Activator | Service Activator fica entre o canal de mensageria e um serviço da aplicação. | Operational Excellence Reliability |
System Management (8)
| Padrão | Resumo | Etiquetas |
|---|---|---|
| Control Bus | O Control Bus é um canal de gerenciamento paralelo ao fluxo de dados da aplicação. | Operational Excellence Reliability |
| Detour | O Detour é um roteador simples, baseado em contexto, com duas saídas. | Operational Excellence Reliability |
| Wire Tap | O Wire Tap é uma derivação passiva num canal ponto a ponto. | Operational Excellence Security |
| Message History | O Message History anexa à própria mensagem a lista dos componentes pelos quais ela passou desde a origem. | Operational Excellence Reliability |
| Message Store | O Message Store captura informações sobre cada mensagem em um local central. | Operational Excellence Security |
| Smart Proxy | O Smart Proxy é colocado no canal de requisição de um serviço. | Operational Excellence Reliability |
| Test Message | O Test Message injeta mensagens sintéticas no fluxo normal e verifica o resultado que sai do outro lado. | Reliability Operational Excellence |
| Channel Purger | O Channel Purger remove mensagens indesejadas de um canal. | Reliability Operational Excellence |
Por etiqueta
Reliability (44)
Shared Database, Remote Procedure Invocation, Messaging, Message Channel, Point-to-Point Channel, Publish-Subscribe Channel, Datatype Channel, Invalid Message Channel, Dead Letter Channel, Guaranteed Delivery, Message, Command Message, Document Message, Event Message, Request-Reply, Return Address, Correlation Identifier, Message Sequence, Message Expiration, Format Indicator, Pipes and Filters, Recipient List, Splitter, Aggregator, Resequencer, Scatter-Gather, Process Manager, Claim Check, Normalizer, Canonical Data Model, Message Endpoint, Messaging Gateway, Transactional Client, Competing Consumers, Message Dispatcher, Durable Subscriber, Idempotent Receiver, Service Activator, Control Bus, Detour, Message History, Smart Proxy, Test Message, Channel Purger
Security (6)
Publish-Subscribe Channel, Envelope Wrapper, Content Filter, Claim Check, Wire Tap, Message Store
Cost Optimization (10)
File Transfer, Publish-Subscribe Channel, Guaranteed Delivery, Messaging Bridge, Message Expiration, Message Filter, Claim Check, Event-Driven Consumer, Competing Consumers, Selective Consumer
Operational Excellence (42)
File Transfer, Shared Database, Remote Procedure Invocation, Messaging, Message Channel, Publish-Subscribe Channel, Datatype Channel, Invalid Message Channel, Dead Letter Channel, Channel Adapter, Messaging Bridge, Message Bus, Message, Command Message, Return Address, Correlation Identifier, Format Indicator, Message Router, Content-Based Router, Dynamic Router, Composed Message Processor, Routing Slip, Process Manager, Message Broker, Message Translator, Envelope Wrapper, Content Enricher, Normalizer, Canonical Data Model, Message Endpoint, Messaging Gateway, Messaging Mapper, Polling Consumer, Service Activator, Control Bus, Detour, Wire Tap, Message History, Message Store, Smart Proxy, Test Message, Channel Purger
Performance Efficiency (32)
Remote Procedure Invocation, Messaging, Point-to-Point Channel, Publish-Subscribe Channel, Channel Adapter, Message Bus, Document Message, Event Message, Request-Reply, Message Sequence, Message Expiration, Message Router, Content-Based Router, Message Filter, Dynamic Router, Recipient List, Splitter, Aggregator, Composed Message Processor, Scatter-Gather, Routing Slip, Message Broker, Message Translator, Content Enricher, Content Filter, Claim Check, Messaging Mapper, Polling Consumer, Event-Driven Consumer, Competing Consumers, Message Dispatcher, Selective Consumer