Event Publisher
Descubra mais sobre o componente Event Publisher e saiba como utilizá-lo na Digibee Integration Platform.
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.
Para mais informações, leia a documentação sobre Arquitetura orientada a eventos.
Parâmetros
Dê uma olhada nos parâmetros de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB)
.
Event (DB)
Nome do evento criado que será publicado para consumo por outros pipelines.
{{ DEFAULT(message.eventName, "new-event") }}
String
Body (DB)
Payload a ser enviado com o evento.
{{ message.$ }}
JSON
Log Each Event Sent
Quando ativada, a opção irá gerar uma entrada de log para cada evento enviado.
False
Booleano
Fail On Error
Se a opção estiver habilitada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade "success".
False
Booleano
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 no parâmetro Event do Event Publisher;
caso deseje passar um payload junto com o evento, defina o conteúdo do parâmetro Body.
Para configurar o pipeline que consumirá o evento:
altere o tipo do trigger para Event Trigger no pipeline Assinante;
abra as configurações do trigger e informe o nome do evento a ser consumido no parâmetro Event Name. Esse valor deve ser idêntico ao informado no Event Publisher do pipeline Publicador.
Cenários de erro
java.util.NoSuchElementException: Timeout waiting for idle object
Quando utilizar o Event Publisher, o seguinte erro pode ocorrer: java.util.NoSuchElementException: Timeout waiting for idle object
Isso significa que o componente está com dificuldades para lidar com a grande quantidade de eventos que estão sendo enviados ao mesmo tempo. Para resolver essa situação, você tem duas opções:
Aumentar o número de réplicas do pipeline: isso ajuda a distribuir a carga de eventos de forma mais eficiente e reduzir a pressão sobre o componente para que ele processe os eventos de maneira mais fluida.
Implementar um tratamento de erros com o Retry: essa abordagem envolve o uso do componente Retry para para fazer novas tentativas de envio dos eventos que causaram o erro. Isso pode ser útil para lidar com picos de carga temporários ou eventos que ocasionalmente falham.
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 parâmetro Event quanto do parâmetro Body. Por exemplo, digamos que a mensagem abaixo fosse passada para o Event Publisher:
Você poderia definir uma expressão Double Braces no parâmetro Event para obter o valor do atributo eventName
:
O atributo body
também poderia ser configurado da mesma forma:
Saída
O componente repassa a mensagem recebida do componente anterior sem nenhuma alteração. No caso do exemplo acima, a mensagem repassada seria:
Atualizado