Um evento é uma mensagem que notifica outros componentes sobre uma mudança de estado, uma ação ou um fato ocorrido. O Event Publisher publica um evento para que outros pipelines configurados para escutá-lo possam reagir quando a publicação ocorrer.

Mais informações sobre Arquitetura Orientada a Eventos podem ser encontrados aqui.

Dê uma olhada nos parâmetros de configuração do componente:

  • Evento: nome do evento criado que será publicado para consumo por outros pipelines. Este parâmetro aceita Double Braces.

  • Body: payload a ser enviado com o evento. Este parâmetro aceita Double Braces.

  • Log Each Event Sent: quando ativada, a opção irá gerar uma entrada de log para cada evento enviado.

  • Fail On Error: quando ativada, esta opção causa a interrupção da execução do pipeline em caso de erro e gera uma exceção; se desativada, a execução do pipeline continua mesmo em caso de erro, mas a propriedade success retorna o valor “false”.

Alguns dos parâmetros acima aceitam Double Braces. Para entender melhor como funciona essa linguagem, leia o nosso artigo clicando aqui.

Como o Event Publisher é utilizado?

Para implementar uma Arquitetura Orientada a Eventos é necessário definir:

  • o pipeline que publicará o evento (Publicador)

  • um ou mais pipelines que irão consumir o evento (Assinantes)

Para configurar o pipeline que publicará o evento:

  • arraste o Event Publisher para o canvas do pipeline Publicador;

  • configure o nome do evento na propriedade “Evento” do Event Publisher;

  • caso deseje passar um payload junto com o evento, defina o conteúdo da propriedade “Body”.

Para configurar o pipeline que consumirá o evento:

  • altere o tipo do trigger para "Event" no pipeline Assinante;

  • abra as configurações do trigger e informe o nome do evento a ser consumido na propriedade “Nome do Evento”. Esse valor deve ser idêntico ao informado no Event Publisher do pipeline Publicador.

Fluxo de Mensagens

Entrada

O componente espera uma mensagem válida em formato JSON. Não é esperado nenhum atributo específico. A mensagem de entrada poderá ser referenciada através de Double Braces tanto para a configuração do atributo “Evento” quanto do atributo “Body”. Por exemplo, digamos que a mensagem abaixo fosse passada para o Event Publisher:

{
"eventName": "example",
"body": {
"id": "1",
"description": "Description of the case"
}
}

Você poderia definir uma expressão Double Braces no atributo “Evento” para obter o valor do atributo eventName:

{{ message.eventName }}

O atributo body também poderia ser configurado da mesma forma:

{{ message.body }}

Saída

O componente repassa a mensagem recebida do componente anterior sem nenhuma alteração. No caso do exemplo acima, a mensagem repassada seria:

{
"eventName": "example",
"body": {
"id": "1",
"description": "Description of the case"
}
}

Encontrou sua resposta?