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

# Eventos do Lender

> Use os streams de aplicação v3 do Lender, os tipos CloudEvents qualificados por source, a entrega pelo outbox, o manifesto e o contrato de consumidor em runtime.

O Lender publica fatos de negócio e comandos como CloudEvents 1.0 sobre Kafka. A publicação é opcional, delimitada por tenant e apoiada em um outbox transacional.

## Ligue a publicação

***

| Ajuste                         | Valor                                                    |
| ------------------------------ | -------------------------------------------------------- |
| `STREAMING_ENABLED`            | `true`                                                   |
| `STREAMING_BROKERS`            | Os seus brokers Kafka ou RedPanda.                       |
| `STREAMING_CLOUDEVENTS_SOURCE` | `lender`. A inicialização rejeita qualquer outro source. |

A originação continua funcionando quando a publicação está desabilitada. Quando a publicação está habilitada, o Lender falha na inicialização se a configuração de broker ou de source for inválida.

## Contrato de transmissão

***

O Lender usa o contrato v3 de stream de aplicação. Um tópico identifica a aplicação produtora e a classe de mensagem, não um evento.

| Elemento de transmissão | Valor                                                                |
| ----------------------- | -------------------------------------------------------------------- |
| Tópico de fatos         | `lerian.streaming.lender`                                            |
| Tópico de comandos      | `lerian.streaming.lender.commands`                                   |
| `ce-source`             | `lender`                                                             |
| `ce-type`               | `studio.lerian.lender.<resource>.<event>`                            |
| Chave de despacho       | `<resource>.<event>`, a partir de `ce-resourcetype` e `ce-eventtype` |
| Chave de partição       | Identificador do tenant                                              |

Por exemplo, um fato de desembolso trafega em `lerian.streaming.lender` com `ce-type: studio.lerian.lender.loan_application.disbursed`.

`ce-schemaversion` carrega a versão do payload. O schema v2 não adiciona sufixo de tópico sob o contrato v3. Roteie pelos headers CloudEvents, não por um nome de tópico por evento.

## Contrato publicado

***

O manifesto declara **35 definições**: 33 fatos e dois comandos. Controles de funcionalidade governam cada caminho de integração, então consuma apenas os contratos expostos pelo manifesto em produção.

Os dois comandos de catálogo são:

* `consignado.exclusao.requested`: pede uma exclusão de consignado ao trilho de folha de pagamento.
* `consignado.redirecionamento.requested`: pede um redirecionamento de consignado ao trilho de folha de pagamento.

Veja a [Referência de eventos do Lender](/pt/reference/events/lender) para cada definição do catálogo e o `ce-type` qualificado por source dela.

## Eventos que o Lender consome

***

O Lender conecta 15 chaves de fato voltadas ao gateway em `lerian.streaming.consignado-gw`. As chaves incluem registro de contrato, confirmação de desembolso, rejeição de averbação, situação de emprego, resultados de redirecionamento, conciliação, resultados de exclusão, disponibilidade de correção, resultados de portabilidade e resultados de refinanciamento. Os consumidores correspondentes são controlados por configuração. Portabilidade e refinanciamento usam, cada um, um flag opt-in para o par de resultados deles.

O gateway tem caminhos de emissão para as 13 primeiras chaves. O par de portabilidade chega ao Lender apenas quando o consumidor de resultado dele está habilitado e o manifesto em produção do gateway declara o evento. O manifesto não declara os dois resultados de refinanciamento, então esses dois listeners não recebem tráfego real do runtime atual do gateway.

Um handler do Lender consome `match_run.completed` em `lerian.streaming.matcher`. Para a passagem padrão, o Matcher deve usar `STREAMING_CLOUDEVENTS_SOURCE=matcher`. O Lender roteia `ce-source: matcher`, `ce-type: studio.lerian.matcher.match_run.completed`, `ce-resourcetype: match_run` e `ce-eventtype: completed`. Se o Matcher usar outro source, inspecione o manifesto de streaming dele e alinhe os dois lados antes de habilitar os runtimes.

Veja [Consignado privado](/pt/products/lender/consignado-privado) para a jornada de folha de pagamento.

## Durabilidade e entrega

***

O Lender grava cada evento de negócio de saída no outbox em PostgreSQL, na mesma transação de banco de dados da mudança de estado. Um relay publica o evento depois do commit. A entrega pelo broker é pelo menos uma vez: deduplique por `(ce-source, ce-id)` e faça os handlers idempotentes.

O relay repete cada linha até `OUTBOX_MAX_DISPATCH_ATTEMPTS` vezes. O valor de `OUTBOX_RETRY_WINDOW_SEC` define a espera mínima entre tentativas para uma linha. É um atraso por tentativa, não uma janela total de novas tentativas. Os padrões são `10` tentativas e `300` segundos.

## Convenções de payload

***

Os payloads são fatos JSON, não diffs. Valores de dinheiro e de taxa usam strings decimais em vez de números JSON. Os timestamps usam RFC 3339 em UTC. Leia `ce-schemaversion` antes de decodificar um payload versionado.

## Confira o contrato em produção

***

`GET /api/v1/streaming/manifest` retorna o catálogo em produção, os tópicos de aplicação, as versões de schema e as políticas de entrega. Ele exige um token bearer com `streaming_manifest` `read`.

Leia o manifesto quando o seu consumidor sobe e rejeite um source, uma chave de evento ou uma versão de schema inesperados antes de processar tráfego.

## Próximos passos

***

<CardGroup cols={2}>
  <Card title="Referência de eventos do Lender" icon="list" href="/pt/reference/events/lender">
    Inspecione contratos emitidos, apenas de catálogo e consumidos.
  </Card>

  <Card title="Consignado privado" icon="brazilian-real-sign" href="/pt/products/lender/consignado-privado">
    Acompanhe o fluxo de comandos e fatos de folha de pagamento.
  </Card>
</CardGroup>
