Pular para o conteúdo principal

Domain-specific Protocol

Descrição​

O padrão Domain-specific Protocol propõe que a comunicação entre serviços, ou entre clientes e serviços, use um protocolo próprio do domínio do problema, em vez de um protocolo genérico de requisição/resposta ou de mensageria. Esses protocolos já codificam as semânticas, os formatos e as garantias típicas da área em que atuam.

Exemplos clássicos são os protocolos de e-mail (SMTP e IMAP) e os de transmissão de mídia (RTMP, HLS e HDS). Quando o serviço pertence a um desses domínios, adotar o protocolo estabelecido permite interoperar com clientes, servidores e ferramentas existentes sem reinventar o mecanismo.

No contexto de microsserviços, é uma terceira opção de comunicação entre processos, ao lado de RPI e Messaging. A fonte descreve o padrão de forma bastante sucinta, sem detalhar forças nem consequências; o texto abaixo complementa com considerações gerais.

Problemas que resolve​

  • Serviços precisam de um mecanismo de comunicação entre processos (IPC) para atender clientes e colaborar entre si.
  • Protocolos genéricos podem não atender bem às necessidades de domínios específicos, como streaming de mídia ou correio eletrônico.
  • Necessidade de interoperar com ecossistemas existentes que já falam um protocolo padronizado.

Quando usar​

  • O domínio já possui protocolo consolidado (e-mail, streaming de mídia etc.) e há clientes e ferramentas que o utilizam.
  • Os requisitos do domínio, como latência, fluxo contínuo ou semântica específica, não são bem atendidos por REST ou mensageria genérica.

Quando evitar​

  • Existe protocolo genérico adequado, e a equipe ganharia mais com a familiaridade e as ferramentas de RPI ou Messaging.
  • Seria necessário inventar um protocolo proprietário, com alto custo de manutenção e baixa interoperabilidade.

Trade-offs​

GanhoCusto / Risco
Semântica e desempenho ajustados ao domínioMenor reaproveitamento de ferramentas e conhecimento genéricos da equipe
Interoperabilidade com clientes e servidores do ecossistemaDependência de bibliotecas e infraestrutura específicas do protocolo
Evita adaptar um protocolo genérico a um uso para o qual não foi desenhadoObservabilidade, segurança e resiliência podem exigir soluções próprias

Diagrama​

Cliente e serviço conversam diretamente usando um protocolo estabelecido para o domínio, sem camada genérica de RPI ou de mensageria.

Padrões relacionados​

Referência​