# Pipeline

A Digibee Integration Platform tem como peça central o *pipeline*, que é uma sequência de componentes que permite conectar sistemas e estabelecer fluxos de dados entre eles.

Um *pipeline* é composto por:

* Um *trigger*
* Pelo menos um componente

{% hint style="info" %}
O *trigger* precisa estar conectado aos componentes.
{% endhint %}

<figure><img src="/files/RJlsjdufgTkBHf0J662W" alt="" width="398"><figcaption></figcaption></figure>

O *trigger* é a condição de disparo do *pipeline*, ou seja, é um elemento que define como a execução do *pipeline* será iniciada – por exemplo, através de uma chamada externa, em resposta a um evento ou por um agendamento. Para saber mais, leia a [documentação sobre *Triggers*](/documentation/connectors-and-triggers/pt-br/triggers/overview.md).

Um componente é um elemento que recebe uma mensagem, podendo interagir ou utilizar as informações contidas nela para executar uma das seguintes atividades:

* Chamar serviços externos, como uma chamada a um endpoint [**REST**](/documentation/connectors-and-triggers/pt-br/connectors/web-protocols/rest-v2.md).
* Processar mensagens transformando o conteúdo da mensagem.
* Alterar o fluxo de execução com uma bifurcação que permite direcionar o fluxo do *pipeline* com base em uma condição, como o componente [**Choice**](/documentation/connectors-and-triggers/pt-br/connectors/logic/choice.md) faz.
* Percorrer coleções, como o componente [**For Each**](/documentation/connectors-and-triggers/pt-br/connectors/logic/for-each.md) faz.

Este último caso é um pouco mais sofisticado e, para entendê-lo, precisamos examiná-lo mais de perto.

Quando você utiliza um componente que itera em coleções, cada item da coleção é processado em um fluxo separado chamado *subpipeline*. Veja a imagem abaixo:

<figure><img src="/files/fbUL73gJs2aWTN9PG3Nj" alt=""><figcaption></figcaption></figure>

1. A execução do fluxo principal acontece até chegar ao componente onde o *subpipeline* é criado (no exemplo acima, o componente é o **For Each**, que foi nomeado como “Processa registros”).
2. A execução passa para o *subpipeline*, onde cada item da coleção será tratado individualmente.
3. Ao término da execução do item 2, o controle volta ao início do *subpipeline*, que inicia o processamento do próximo item e assim sucessivamente, até que a coleção seja totalmente processada.
4. Uma vez que toda a coleção tenha sido processada, o controle retorna ao componente **For Each,** que direciona o fluxo para o próximo componente do fluxo principal (no caso, o componente **Object Store** nomeado como “Lê todos os dados”).

Para saber mais, leia o artigo[ *Subpipelines*](/documentation/developer-guide/pt-br/development-cycle/build-overview/pipelines/subpipelines.md).


---

# 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/developer-guide/pt-br/development-cycle/build-overview/pipelines.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.
