Pular para o conteúdo principal

Document Message

Descrição​

Document Message transporta uma estrutura de dados de uma aplicação para outra. Diferente de um comando, não diz ao receptor o que fazer: entrega o dado e deixa a decisão de uso com quem recebe.

O documento é tratado como uma unidade, ainda que contenha partes menores. O que importa é que ele chegue de forma confiável; o momento exato da chegada costuma ser menos crítico.

Problemas que resolve​

  • Transferir dados entre aplicações sem as limitações de File Transfer e Shared Database.
  • Evitar que o emissor precise conhecer o que o receptor fará com os dados.
  • Garantir que uma estrutura de dados chegue inteira.

Quando usar​

  • Para replicar ou distribuir dados (pedidos, cadastros, resultados) entre sistemas.
  • Quando o receptor deve decidir como processar o conteúdo.
  • Quando a entrega confiável importa mais do que a latência, combinada com Guaranteed Delivery.

Quando evitar​

  • Quando é preciso ordenar uma ação específica (use Command Message).
  • Quando só importa avisar que algo aconteceu e o tempo é crítico (use Event Message).
  • Quando o documento é grande demais; considere Claim Check ou Message Sequence.

Trade-offs​

GanhoCusto / Risco
Emissor desacoplado do uso que o receptor faz do dadoReceptor precisa entender a estrutura do documento
Entrega confiável de dados completosDocumentos grandes pesam no canal
Fácil de combinar com Guaranteed DeliveryEvolução do formato exige cuidado com compatibilidade
  • Intenção implícita pode gerar ambiguidade; nomeie bem o tipo do documento.
  • Para reduzir o peso das mensagens, envie referência ao dado em vez do dado.

Diagrama​

A aplicação A envia os dados e a aplicação B decide o que fazer com eles.

Padrões relacionados​

Referência​