> ## 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.

# O que é o Streaming Hub?

> O Streaming Hub é a borda de entrega gerenciada da Lerian — ele consome o stream de eventos interno da plataforma e distribui cada evento para seus consumidores externos de webhook, fila e pull.

O **Streaming Hub** é o serviço de entrega de eventos da Lerian. Ele fica na borda entre o stream de eventos interno da plataforma e os sistemas que você opera fora dela, e entrega cada evento que lhe interessa a um destino de sua propriedade — um webhook, uma fila na nuvem ou um cursor que você consome por pull.

Os produtos Lerian publicam eventos de domínio — fatos de negócio no passado, como uma conta sendo criada ou uma transação sendo registrada — em um backbone de streaming compartilhado. O Streaming Hub assina esse backbone em seu nome, faz o match dos eventos contra as assinaturas que você registra e os entrega. Você descreve *quais eventos vão para onde*; o hub é dono do ciclo de consumir, fazer match e entregar.

O Streaming Hub é de código fechado e está disponível para clientes licenciados da Lerian; seu repositório é mantido internamente.

## O Streaming Hub na plataforma Lerian

***

O backbone de eventos da plataforma é um [stream baseado em CloudEvents](/pt/reference/events/overview) compartilhado, transportado sobre Kafka/Redpanda e produzido através da biblioteca `lib-streaming` da Lerian. A entrega nesse stream é **at-least-once**, os eventos de todos os produtos e tenants trafegam pelos mesmos tópicos, e consumi-lo diretamente significa operar seu próprio consumidor Kafka: rastrear offsets, filtrar tipos de evento, deduplicar, retentar entregas que falharam e assinar as requisições de saída.

O Streaming Hub faz esse trabalho uma única vez, como uma borda gerenciada. Ele **consome** o stream interno — nunca produz nele — e transforma um feed bruto de eventos em entrega por destino que você configura através de uma única API. Você registra uma assinatura, o hub acompanha o stream, e os eventos que deram match chegam ao seu endpoint já assinados e correlacionados.

Como o hub é a borda de entrega, as garantias contra as quais você desenvolve são o contrato de entrega do hub, não o stream bruto: seu endpoint de webhook verifica uma assinatura, deduplica por um id de evento estável e responde rapidamente. Veja [Como o Streaming Hub funciona](/pt/streaming-hub/how-streaming-hub-works) para o caminho completo que um evento percorre.

## Tipos de sink

***

Uma assinatura entrega para exatamente um destino, chamado de **sink**. O Streaming Hub suporta cinco tipos de sink:

| Tipo de sink  | Entrega | Destino                                                                                                                                    |
| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `webhook`     | Push    | Um endpoint `https://` de sua propriedade. Cada requisição é assinada com HMAC e carrega cabeçalhos de correlação CloudEvents.             |
| `pull`        | Pull    | Um cursor do lado do servidor. Seu consumidor lê uma página de eventos com `GET /v1/events`; a leitura funciona também como a confirmação. |
| `sqs`         | Push    | Uma fila Amazon SQS, alcançada através de um grant delegado da AWS.                                                                        |
| `rabbitmq`    | Push    | Um exchange e routing key do RabbitMQ.                                                                                                     |
| `eventbridge` | Push    | Um event bus do Amazon EventBridge, alcançado através de um grant delegado da AWS.                                                         |

Os sinks push (`webhook`, `sqs`, `rabbitmq`, `eventbridge`) entregam os eventos a você conforme eles dão match. O sink `pull` inverte isso: o hub mantém os eventos em um cursor e o seu consumidor os busca no seu próprio ritmo.

As assinaturas de webhook estão prontas para receber assim que você as cria. As assinaturas de fila (`sqs`, `rabbitmq`, `eventbridge`) não entregam nada até que você forneça e verifique a credencial de saída delas — veja [Gerenciando assinaturas](/pt/streaming-hub/managing-subscriptions).

## Modelo de deployment

***

O Streaming Hub roda em **BYOC** por padrão: você o implanta na sua própria infraestrutura como um serviço single-tenant, com um roster de tenants estático e sem dependência do gerenciamento de tenants hospedado pela Lerian. Essa é a configuração que a maioria dos clientes utiliza.

Um modo **SaaS multi-tenant** fica atrás de uma flag de configuração. Quando habilitado, o hub atende muitos tenants sobre o barramento compartilhado, admite tenants a partir de um roster respaldado por cache alimentado pelo gerenciador de tenants da Lerian, e isola as assinaturas, os eventos e os cursores de cada tenant pelo id do tenant. O caminho BYOC não carrega nada dessa maquinaria. Veja o [modelo de multi-tenancy](/pt/multi-tenancy) de toda a plataforma para entender como o isolamento por tenant funciona entre os produtos Lerian, e [Operando o Streaming Hub](/pt/streaming-hub/operating-streaming-hub) para os detalhes do deployment.

## A API de control-plane

***

Você gerencia as assinaturas através da API de control-plane `/v1`. Toda rota é autenticada com um JWT do plugin-auth (`Authorization: Bearer <token>`), e o tenant é sempre extraído das claims do token validado — nunca de um corpo, path ou query da requisição. Através dela você:

* cria, lista, lê e exclui assinaturas;
* verifica um destino (`ping` / `verify`) e fornece credenciais de fila;
* rotaciona um segredo de assinatura de webhook;
* lê a saúde de entrega de uma assinatura;
* consome eventos por pull (`GET /v1/events`) para sinks `pull`;
* navega pelo [catálogo](/pt/reference/events/overview) de eventos que o hub enxerga.

O conjunto completo de operações, os formatos de requisição e os tokens de erro estão na referência da API — comece pela [introdução da referência](/pt/reference/introduction).

## Próximos passos

***

<CardGroup cols={2}>
  <Card title="Como o Streaming Hub funciona" icon="diagram-project" href="/pt/streaming-hub/how-streaming-hub-works">
    O caminho que um evento percorre: ingestão, match, despacho, retentativa e desativação automática.
  </Card>

  <Card title="Gerenciando assinaturas" icon="gear" href="/pt/streaming-hub/managing-subscriptions">
    Crie assinaturas de webhook e de fila, conecte grants da AWS e rotacione segredos.
  </Card>

  <Card title="Consumindo eventos" icon="inbox" href="/pt/streaming-hub/consuming-events">
    Verifique assinaturas de webhook, deduplique entregas e consuma eventos por pull.
  </Card>

  <Card title="Visão geral de event streaming" icon="book" href="/pt/reference/events/overview">
    O contrato CloudEvents compartilhado que todo evento Lerian segue.
  </Card>
</CardGroup>
