Sobes.tech
Middle

Fale sobre o princípio das mensagens auto-descritivas (Self-descriptive messages).

sobes.tech IA

Resposta da IA

O princípio das mensagens auto-descritivas significa que a mensagem contém todas as informações necessárias para sua interpretação, sem recorrer a esquemas ou definições externas.

Aspectos-chave:

  • Independência do contexto: O destinatário da mensagem não precisa conhecer previamente sua estrutura ou o significado dos campos.
  • Definição explícita de dados: Os tipos de dados, nomes de campos e seus valores estão claramente incluídos na mensagem.
  • Flexibilidade: A estrutura das mensagens pode mudar sem necessidade de atualizar contratos ou esquemas de todos os participantes.

Exemplos de formatos que suportam esse princípio:

  • JSON: Utiliza pares chave-valor, definindo claramente os nomes dos campos.

    {
      "userId": 123, // Identificador do usuário
      "orderId": "abc-456", // Identificador do pedido
      "items": [
        {
          "itemId": 101,
          "name": "Produto A",
          "quantity": 2
        },
        {
          "itemId": 102,
          "name": "Produto B",
          "quantity": 1
        }
      ]
    }
    
  • XML: Utiliza tags para definir elementos e atributos para suas propriedades.

    <!-- Pedido do usuário -->
    <order userId="123">
      <orderId value="abc-456"></orderId>
      <items>
        <item itemId="101">
          <name>Produto A</name>
          <quantity>2</quantity>
        </item>
        <item itemId="102">
          <name>Produto B</name>
          <quantity>1</quantity>
        </item>
      </items>
    </order>
    

Vantagens:

  • Facilidade de integração: Novos consumidores podem processar facilmente as mensagens sem conhecimentos prévios sobre a estrutura.
  • Resiliência a mudanças: Mudanças na estrutura da mensagem na fonte não requerem uma atualização imediata de todos os consumidores.
  • Facilidade de depuração: As mensagens são fáceis de ler e entender.

Desvantagens:

  • Redundância: O tamanho das mensagens pode ser maior devido à inclusão de metadados.
  • Parsing mais complexo: Requer um parser mais universal capaz de lidar com diferentes estruturas.

Na QA, mensagens auto-descritivas simplificam os testes de integração e permitem detectar problemas mais rapidamente, pois a estrutura dos dados pode ser vista diretamente na mensagem. Isso é especialmente útil em arquiteturas de microsserviços, onde os serviços interagem entre si de forma assíncrona ou síncrona por diferentes protocolos.