> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Ler eventos com um cursor

> Leia seus eventos do Streaming Hub página por página a partir de uma subscription pull, em que cada leitura confirma a página que devolve.

Leia seus eventos no seu próprio ritmo, sem expor um endpoint.

## Participantes

***

* **Sua instituição.** Seu sistema chama a API do Streaming Hub com um token do Access Manager.
* **Streaming Hub.** O serviço de plataforma da Lerian que guarda seus eventos em ordem de chegada e os devolve página por página. A Lerian o configura para sua instituição.
* **Produto Lerian.** O produto que publica o evento de negócio, por exemplo o Midaz.

## Diagrama

***

![Ler eventos com um cursor](https://mintcdn.com/lerian-49cb71fc/WuRfbo_y9uSbzyyX/images/pt/d2/id-pull-events-with-a-cursor.svg?fit=max\&auto=format\&n=WuRfbo_y9uSbzyyX\&q=85\&s=4a1c7402a811911f94bb9623eca31ee4)

## Passo a passo

***

| # | Origem | Destino | Mensagem | API da Lerian | O que acontece |
| - | - | - | - | - | - |
| 1 | Sua instituição | Streaming Hub | API da Lerian | [`POST /v1/subscriptions`](https://docs.lerian.studio/pt/reference/platform/streaming-hub/create-subscription) | Crie a subscription com um `name`, `sink_kind` `pull` e os `event_types` que você quer. Não envie endpoint. Envie um header `X-Idempotency` único. |
| 2 | Streaming Hub | Sua instituição | Resposta | | A subscription fica `active` na hora. Uma subscription pull não precisa de ping e não tem segredo de assinatura. |
| 3 | Produto Lerian | Streaming Hub | Evento | | O produto publica um evento de negócio. |
| 4 | Streaming Hub | Streaming Hub | Etapa interna | | O Streaming Hub guarda o evento e dá a ele um número de sequência, `seq`, em ordem de chegada. |
| 5 | Sua instituição | Streaming Hub | API da Lerian | [`GET /v1/events`](https://docs.lerian.studio/pt/reference/platform/streaming-hub/pull-events) | Leia uma página com `subscription_id`. O `limit` opcional vai de 1 a 500, e o padrão é 100. |
| 6 | Streaming Hub | Streaming Hub | Etapa interna | | O Streaming Hub move o cursor da subscription para o maior `seq` da página. A leitura é a confirmação. |
| 7 | Streaming Hub | Sua instituição | Resposta | | A página traz os eventos em ordem de `seq`, cada um com seu `ceId`, e o `next_cursor`. |
| 8 | Sua instituição | Sua instituição | Etapa interna | | Processe os eventos. Ignore um `ceId` que você já processou. |
| 9 | Sua instituição | Streaming Hub | API da Lerian | [`GET /v1/events`](https://docs.lerian.studio/pt/reference/platform/streaming-hub/pull-events) | Leia a próxima página. Envie o `next_cursor` como `after`, ou não envie `after` para continuar a partir do cursor. |
| 10 | Streaming Hub | Sua instituição | Resposta | | Quando a página tem menos eventos que o `limit`, o `next_cursor` é `null`. |

## Como saber que terminou

***

Uma leitura devolve `next_cursor` `null`.

* **Seu sistema para depois de uma leitura.** O cursor já passou daquela página. Leia de novo com `after` igual ao último `seq` que você processou. Essa leitura não move o cursor para trás.
* **A leitura é recusada por limite de taxa.** A leitura responde `429` `rate_limited`. Espere os segundos de `Retry-After` e leia de novo.

## Relacionados

***

* [Receber eventos em um webhook](https://docs.lerian.studio/pt/diagrams/platform-services/receive-events-on-a-webhook.md)
* [Consumir eventos](https://docs.lerian.studio/pt/platform/streaming-hub/consuming-events.md)
* [Gerenciar subscriptions](https://docs.lerian.studio/pt/platform/streaming-hub/managing-subscriptions.md)
* [Erros do Streaming Hub](https://docs.lerian.studio/pt/reference/platform/streaming-hub/streaming-hub-error-list.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.