> ## 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 de Lender

> Usa los streams de aplicación v3 de Lender, los tipos CloudEvents calificados por fuente, la entrega por outbox, el manifiesto y el contrato de consumidor en tiempo de ejecución.

Lender publica hechos de negocio y comandos como CloudEvents 1.0 sobre Kafka. La publicación es opcional, tiene alcance por tenant y se respalda en un outbox transaccional.

## Activar la publicación

***

| Ajuste                         | Valor                                                |
| ------------------------------ | ---------------------------------------------------- |
| `STREAMING_ENABLED`            | `true`                                               |
| `STREAMING_BROKERS`            | Tus brokers de Kafka o RedPanda.                     |
| `STREAMING_CLOUDEVENTS_SOURCE` | `lender`. El arranque rechaza cualquier otra fuente. |

La originación sigue funcionando cuando la publicación está deshabilitada. Cuando la publicación está habilitada, Lender falla al arrancar si la configuración del broker o de la fuente es inválida.

## Contrato de cable

***

Lender usa el contrato de stream de aplicación v3. Un tema identifica la aplicación productora y la clase de mensaje, no un evento.

| Elemento de cable  | Valor                                                               |
| ------------------ | ------------------------------------------------------------------- |
| Tema de hechos     | `lerian.streaming.lender`                                           |
| Tema de comandos   | `lerian.streaming.lender.commands`                                  |
| `ce-source`        | `lender`                                                            |
| `ce-type`          | `studio.lerian.lender.<resource>.<event>`                           |
| Clave de despacho  | `<resource>.<event>` a partir de `ce-resourcetype` y `ce-eventtype` |
| Clave de partición | Identificador del tenant                                            |

Por ejemplo, un hecho de desembolso viaja en `lerian.streaming.lender` con `ce-type: studio.lerian.lender.loan_application.disbursed`.

`ce-schemaversion` lleva la versión del payload. El esquema v2 no agrega un sufijo de tema bajo el contrato v3. Enruta por los headers de CloudEvents, no por un nombre de tema por evento.

## Contrato publicado

***

El manifiesto declara **35 definiciones**: 33 hechos y dos comandos. Los feature gates controlan rutas de integración individuales, así que consume solo los contratos que expone el manifiesto desplegado.

Los dos comandos del catálogo son:

* `consignado.exclusao.requested`: pide una exclusión de consignado al riel de nómina.
* `consignado.redirecionamento.requested`: pide un redireccionamiento de consignado al riel de nómina.

Consulta la [Referencia de eventos de Lender](/es/reference/events/lender) para cada definición del catálogo y su `ce-type` calificado por fuente.

## Eventos que consume Lender

***

Lender conecta 15 claves de hechos orientadas al gateway desde `lerian.streaming.consignado-gw`. Las claves incluyen registro de contrato, confirmación de desembolso, rechazo de averbação, situación laboral, resultados de redireccionamiento, conciliación, resultados de exclusión, disponibilidad de corrección, resultados de portabilidad y resultados de refinanciamiento. Los consumidores correspondientes dependen de la configuración. La portabilidad y el refinanciamiento usan cada uno un flag de activación explícita para su par de resultados.

El gateway tiene rutas de emisión para las primeras 13 claves. El par de portabilidad llega a Lender solo cuando su consumidor de resultados está habilitado y el manifiesto desplegado del gateway declara el evento. El manifiesto no declara los dos resultados de refinanciamiento, así que esos dos listeners no reciben tráfico vivo del runtime actual del gateway.

Un handler de Lender consume `match_run.completed` desde `lerian.streaming.matcher`. Para el traspaso predeterminado, Matcher debe usar `STREAMING_CLOUDEVENTS_SOURCE=matcher`. Lender enruta `ce-source: matcher`, `ce-type: studio.lerian.matcher.match_run.completed`, `ce-resourcetype: match_run` y `ce-eventtype: completed`. Si Matcher usa otra fuente, inspecciona su manifiesto de streaming y alinea ambos lados antes de habilitar los runtimes.

Consulta [Consignado privado](/es/products/lender/consignado-privado) para el recorrido de nómina.

## Durabilidad y entrega

***

Lender escribe cada evento de negocio saliente en el outbox de PostgreSQL, dentro de la misma transacción de base de datos que el cambio de estado. Un relay lo publica después del commit. La entrega del broker es al menos una vez: deduplica por `(ce-source, ce-id)` y haz que los handlers sean idempotentes.

El relay reintenta cada fila hasta `OUTBOX_MAX_DISPATCH_ATTEMPTS` veces. El valor `OUTBOX_RETRY_WINDOW_SEC` define la espera mínima entre intentos para una fila. Es un retraso por intento, no una ventana total de reintentos. Los valores predeterminados son `10` intentos y `300` segundos.

## Convenciones de payload

***

Los payloads son hechos JSON, no diffs. Los valores de dinero y de tasa usan cadenas decimales en lugar de números JSON. Las marcas de tiempo usan RFC 3339 UTC. Lee `ce-schemaversion` antes de decodificar un payload versionado.

## Verificar el contrato desplegado

***

`GET /api/v1/streaming/manifest` devuelve el catálogo desplegado, los temas de aplicación, las versiones de esquema y las políticas de entrega. Requiere un Bearer token con `streaming_manifest` `read`.

Lee el manifiesto cuando arranca tu consumidor y rechaza una fuente, una clave de evento o una versión de esquema inesperada antes de procesar tráfico.

## Próximos pasos

***

<CardGroup cols={2}>
  <Card title="Referencia de eventos de Lender" icon="list" href="/es/reference/events/lender">
    Inspecciona los contratos emitidos, los de solo catálogo y los consumidos.
  </Card>

  <Card title="Consignado privado" icon="brazilian-real-sign" href="/es/products/lender/consignado-privado">
    Sigue el flujo de comandos y hechos de nómina.
  </Card>
</CardGroup>
