# Evitando loops e maximizando a eficiência dos pipelines

## **Entendendo o conceito de “salto”**

Um “salto” ocorre quando um evento é acionado entre diferentes pipelines ou dentro do mesmo pipeline. A Digibee Integration Platform rastreia o número de vezes que um evento é acionado, permitindo um máximo de **25 saltos** no ciclo de vida do evento.

## **Exemplos práticos**

### **Cenário 1: Excesso de saltos entre dois pipelines**

Para entender melhor como os saltos funcionam, considere o seguinte cenário:

1. O **Pipeline A** publica um evento com o ID **“123”** para o **Pipeline B**.
2. Quando o evento **123** é publicado no **Pipeline B**, ocorre o primeiro salto, restando 24 saltos disponíveis.
3. O **Pipeline B** está configurado para acionar 30 vezes por evento.

Essa operação não será possível porque o evento **123** tem apenas 24 saltos restantes, tornando impossível completar os 30 acionamentos.

### **Cenário 2: Excesso de saltos em uma cadeia de pipelines**

Embora loops infinitos que esgotam o ciclo de vida de eventos sejam raros (já que os pipelines tendem a se autoacionar menos vezes), eles são mais prováveis em cenários com cadeias longas de pipelines, onde cada um aciona o próximo.

Veja um exemplo para ilustrar:

1. O **Pipeline A** publica o evento **123** no **Pipeline B**, consumindo o primeiro salto e restando 24 saltos.
2. O **Pipeline B** está configurado para acionar 15 vezes por evento, deixando 9 saltos restantes após o processamento.
3. O **Pipeline B** então aciona o **Pipeline C**, consumindo mais um salto e restando 8 saltos.
4. O **Pipeline C** está configurado para acionar 15 vezes por evento.

Nesse caso, o evento **123** não conseguirá completar todos os 15 acionamentos no **Pipeline C**, pois apenas 8 saltos estão disponíveis. O limite de ciclo de vida de 25 saltos é insuficiente para os 32 saltos necessários nessa cadeia de pipelines.

## **Gerenciando o controle de saltos**

Mesmo em execuções paralelas, o ciclo de vida do evento é rastreado. Essa contagem de saltos se aplica a mensagens geradas tanto pelos conectores [**Event Publisher**](/documentation/connectors-and-triggers/pt-br/connectors/queues-and-messaging/event-publisher.md) quanto [**Pipeline Executor**](/documentation/connectors-and-triggers/pt-br/connectors/tools/pipeline-executor.md).

Os exemplos discutidos aqui não representam loops infinitos. Eles assumem que os pipelines são projetados com mecanismos de proteção para evitar autoacionamentos ilimitados. Sem esses controles, poderia ocorrer um loop infinito, no qual o pipeline se aciona continuamente, impactando negativamente o desempenho do sistema. Implementar esses controles é essencial para gerenciar o ciclo de vida dos eventos, evitar loops e garantir a estabilidade do sistema.


---

# Agent Instructions: 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:

```
GET https://docs.digibee.com/documentation/resources/pt-br/best-practices/avoiding-loops-and-maximizing-pipeline-efficiency.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
