Pular para o conteúdo principal

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)​

PadrãoResumoEtiquetas
File TransferEm 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ãoResumoEtiquetas
Message ChannelO Message Channel é o caminho lógico pelo qual duas aplicações trocam mensagens.Reliability Operational Excellence
Point-to-Point ChannelO 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 ChannelO Datatype Channel dedica um canal a cada tipo de dado.Reliability Operational Excellence
Invalid Message ChannelO 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 ChannelO 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 DeliveryO 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 AdapterO 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 BusO 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ãoResumoEtiquetas
MessageMessage é 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 MessageCommand Message é uma mensagem comum cujo conteúdo é uma ordem: pede que outra aplicação execute um procedimento.Reliability Operational Excellence
Document MessageDocument Message transporta uma estrutura de dados de uma aplicação para outra.Reliability Performance Efficiency
Event MessageEvent Message é uma mensagem que notifica, de forma assíncrona, que algo aconteceu.Reliability Performance Efficiency
Request-ReplyA mensageria é naturalmente unidirecional.Reliability Performance Efficiency
Return AddressReturn Address faz o requestor indicar, na própria mensagem de requisição, para onde a resposta deve ser enviada.Reliability Operational Excellence
Correlation IdentifierCorrelation Identifier permite que o requestor saiba a qual requisição uma resposta se refere.Reliability Operational Excellence
Message SequenceMessage Sequence trata dados grandes demais para caber em uma única mensagem.Reliability Performance Efficiency
Message ExpirationMessage Expiration permite ao emissor definir por quanto tempo uma mensagem continua válida.Reliability Cost Optimization Performance Efficiency
Format IndicatorFormat Indicator inclui em cada mensagem um marcador que identifica o formato de seus dados.Reliability Operational Excellence

Message Routing (14)​

PadrãoResumoEtiquetas
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 RouterO Message Router é um tipo especial de filtro que fica entre canais de mensagens.Operational Excellence Performance Efficiency
Content-Based RouterO 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 FilterO Message Filter é um roteador especializado com um único canal de saída.Performance Efficiency Cost Optimization
Dynamic RouterO Dynamic Router é um roteador que monta suas próprias regras em tempo de execução.Operational Excellence Performance Efficiency
Recipient ListO 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
SplitterO 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
AggregatorO Aggregator é um filtro com estado que fica entre o fluxo de mensagens de entrada e a próxima etapa.Reliability Performance Efficiency
ResequencerO Resequencer é um filtro com estado que coleta e reordena mensagens antes de publicá-las.Reliability
Composed Message ProcessorO 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-GatherO 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 SlipO 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 ManagerO 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 BrokerO Message Broker coloca um intermediário central entre remetentes e receptores.Operational Excellence Performance Efficiency

Message Transformation (7)​

PadrãoResumoEtiquetas
Message TranslatorO 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 WrapperO 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 EnricherO 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 FilterO 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
NormalizerO Normalizer processa mensagens semanticamente equivalentes que chegam em formatos diferentes e as converte para um único formato comum.Operational Excellence Reliability
Canonical Data ModelO 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ãoResumoEtiquetas
Message EndpointMessage Endpoint é a camada que conecta uma aplicação a um canal de mensageria.Reliability Operational Excellence
Messaging GatewayMessaging 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 MapperMessaging Mapper é um componente separado que converte entre objetos de domínio e mensagens.Operational Excellence Performance Efficiency
Transactional ClientTransactional 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 ConsumerPolling Consumer é um consumidor que só recebe uma mensagem quando a aplicação pede.Performance Efficiency Operational Excellence
Event-Driven ConsumerEvent-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 DispatcherMessage Dispatcher coordena vários consumidores de um mesmo canal.Performance Efficiency Reliability
Selective ConsumerSelective Consumer é um consumidor que filtra as mensagens do canal e aceita somente as que atendem a seus critérios.Performance Efficiency Cost Optimization
Durable SubscriberDurable 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 ActivatorService Activator fica entre o canal de mensageria e um serviço da aplicação.Operational Excellence Reliability

System Management (8)​

PadrãoResumoEtiquetas
Control BusO Control Bus é um canal de gerenciamento paralelo ao fluxo de dados da aplicação.Operational Excellence Reliability
DetourO Detour é um roteador simples, baseado em contexto, com duas saídas.Operational Excellence Reliability
Wire TapO Wire Tap é uma derivação passiva num canal ponto a ponto.Operational Excellence Security
Message HistoryO Message History anexa à própria mensagem a lista dos componentes pelos quais ela passou desde a origem.Operational Excellence Reliability
Message StoreO Message Store captura informações sobre cada mensagem em um local central.Operational Excellence Security
Smart ProxyO Smart Proxy é colocado no canal de requisição de um serviço.Operational Excellence Reliability
Test MessageO Test Message injeta mensagens sintéticas no fluxo normal e verifica o resultado que sai do outro lado.Reliability Operational Excellence
Channel PurgerO 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