> For the complete documentation index, see [llms.txt](https://docs.digibee.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/queues-and-messaging/event-publisher.md).

# Event Publisher

Saiba mais sobre o conector Event Publisher e como utilizá-lo na Digibee Integration Platform.

O conector **Event Publisher** permite a comunicação orientada a eventos entre pipelines, notificando outros pipelines sobre uma mudança de estado, uma ação ou um fato ocorrido para que possam reagir a ele, aproveitando o roteamento de eventos nativo da plataforma.

Saiba mais sobre [como usar arquitetura orientada a eventos na Digibee Integration Platform](/documentation/resources/pt-br/use-cases/how-to-event-driven-architecture.md).

## **Parâmetros**

A tabela abaixo lista todos os parâmetros de configuração do conector. Os parâmetros que suportam [expressões Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados com ✅ na coluna **Suporta DB**.

{% tabs %}
{% tab title="Section Event Publisher Connector" %}

<table><thead><tr><th width="111.800048828125">Parâmetro</th><th width="230.800048828125">Descrição</th><th width="100">Tipo</th><th width="110.4000244140625">Suporta DB</th><th width="150.1904296875">Padrão</th></tr></thead><tbody><tr><td><strong>Alias</strong></td><td>Um nome para a saída deste conector, para que você possa referenciá-la posteriormente no fluxo usando <a href="/documentation/connectors-and-triggers/pt-br/double-braces/how-to-reference-data-using-double-braces.md#referenciando-etapas-anteriores-usando-o-previous-steps-access">Double Braces</a>.</td><td>String</td><td><strong>❌</strong></td><td><code>event-publisher-1</code></td></tr><tr><td><strong>Event</strong></td><td>Nome do evento a ser publicado para que outros pipelines o consumam.</td><td>String</td><td>✅</td><td><code>{{ DEFAULT(message.eventName, "new-event") }}</code></td></tr><tr><td><strong>Body</strong></td><td>Payload a ser enviado com o evento.</td><td>JSON</td><td>✅</td><td><code>{{ message.$ }}</code></td></tr><tr><td><strong>Log Each Event Sent</strong></td><td>Se habilitado, gera um log de entrada para cada evento enviado.</td><td>Boolean</td><td>❌</td><td><code>false</code></td></tr><tr><td><strong>Fail On Error</strong></td><td>Se habilitado, interrompe a execução do pipeline quando ocorre um erro. Se desabilitado, a execução continua, mas a propriedade <code>"success"</code> será definida como <code>false</code>.</td><td>Boolean</td><td>❌</td><td><code>false</code></td></tr></tbody></table>
{% endtab %}

{% tab title="Documentation" %}

<table><thead><tr><th width="123">Parâmetro</th><th width="230.99993896484375">Descrição</th><th width="100">Tipo</th><th width="109.5999755859375">Suporta DB</th><th width="134.79071044921875">Padrão</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td>Campo opcional para descrever a configuração do conector e quaisquer regras de negócio relevantes.</td><td>String</td><td>❌</td><td>N/A</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

## **Como funciona a troca de mensagens baseada em eventos entre pipelines?**

Uma configuração orientada a eventos sempre tem dois lados: um pipeline que publica o evento e um ou mais pipelines que o consomem.

Primeiro, configure o pipeline Publisher:

1. Adicione o conector Event Publisher ao pipeline.
2. No parâmetro **Event**, informe o nome do evento a ser publicado.
3. Para enviar dados junto com o evento, defina o payload no parâmetro **Body**.

Em seguida, configure o pipeline Subscriber:

1. Defina o tipo de trigger do pipeline como [Event Trigger](/documentation/connectors-and-triggers/pt-br/triggers/messaging-and-events/event.md).
2. Na configuração do trigger, informe o nome do evento na propriedade **Event Name**. Esse valor deve corresponder ao definido no parâmetro **Event** do pipeline Publisher.

Com os dois pipelines configurados, toda vez que o pipeline Publisher executar e publicar o evento, o pipeline Subscriber é acionado e começa a executar automaticamente.

{% hint style="warning" %}

#### Observação sobre o redeploy dos pipelines Publisher e Subscriber

Ao fazer o redeploy de um pipeline com Event Publisher, também faça o redeploy do pipeline Subscriber correspondente (aquele com o Event Trigger), começando pelo Subscriber. Se os dois lados ficarem temporariamente desalinhados, a entrega do evento continua funcionando, mas as configurações de timeout e redelivery (Allow Redelivery Of Messages) podem não ser aplicadas até que o redeploy seja feito em ambos os pipelines. Saiba mais em [Como interpretar alertas de publicação e entrega de eventos](/documentation/troubleshooting/pt-br/deployment-issues/interpret-event-publishing-and-delivery-alerts.md).
{% endhint %}

## **Cenários de erro**

### **java.util.NoSuchElementException: Timeout waiting for idle object**

Esse erro significa que o conector não consegue acompanhar o número de eventos enviados simultaneamente. Para resolver isso, você tem duas opções:

* **Aumentar o número de réplicas do pipeline**: distribui a carga de eventos de forma mais eficiente e reduz a pressão sobre o conector, permitindo que ele processe os eventos com mais fluidez.
* **Implementar tratamento de erros com Retry**: reenvia automaticamente os eventos que causaram o erro, o que ajuda em picos temporários de carga ou eventos que falham ocasionalmente.

## **Fluxo de mensagens**

### **Entrada**

O conector espera uma mensagem válida em formato JSON. Nenhum atributo específico é esperado. Você pode referenciar a mensagem de entrada com Double Braces tanto no parâmetro **Event** quanto no **Body**. Por exemplo, digamos que a seguinte mensagem seja passada para o Event Publisher:

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

Você poderia definir uma expressão Double Braces no parâmetro **Event** para obter o valor do atributo `eventName`:

```
{{ message.eventName }}
```

Você poderia configurar o atributo **Body** da mesma forma:

```
{{ message.body }}
```

### **Saída**

O conector encaminha a mensagem recebida do conector anterior, sem qualquer alteração. No exemplo acima, a mensagem de saída é:

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

## **Próximos passos**

Agora que você já sabe como o Event Publisher funciona, leia [Event Trigger](/documentation/connectors-and-triggers/pt-br/triggers/messaging-and-events/event.md) para configurar o pipeline que consome o evento publicado.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/queues-and-messaging/event-publisher.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
