Skip to main content
Lender publica un evento de negocio cada vez que un producto, una solicitud, una cuenta de préstamo o un registro regulatorio brasileño cambia de estado. Suscríbete a esos eventos y tu servicio reacciona a cada cambio a medida que ocurre, sin loop de polling. Cada evento está respaldado por el outbox y tiene alcance por tenant. Esta página cubre el lado del consumidor: qué llega al wire, qué eventos existen y cómo hacer que un handler sea seguro.

Activa la publicación


Publicar eventos es una decisión de despliegue. La originación funciona sin ella. Lender se niega a arrancar cuando la publicación está activa y algo de esto está mal, así que un despliegue mal configurado falla al arrancar en lugar de perder eventos en silencio.

El contrato del wire


El source de CloudEvents es el literal fijo lender, y el source también sirve de namespace para cada topic. Así, un suscriptor lee: Para un desembolso eso resuelve a:
Los mensajes viajan en modo binario de CloudEvents, versión 1.0. Los atributos de contexto viajan como headers del mensaje: ce-specversion, ce-id, ce-source, ce-type, ce-time, ce-schemaversion, ce-resourcetype y ce-eventtype en cada mensaje, más ce-subject, ce-datacontenttype y ce-tenantid cuando Lender tiene un valor para ellos. ce-schemaversion es 1.0.0 para cada evento del catálogo. El topic no lleva sufijo de versión en esta versión de esquema, así que suscríbete al nombre de topic simple.
Suscríbete por topic. El topic es la dirección, y se compone del resource type y del event type — no de un nombre interno de catálogo. Lee la columna de topic en las tablas siguientes en lugar de derivar uno desde la descripción de un evento.

Los eventos


Esta página cubre los 21 eventos de la jornada de crédito documentada. Se agrupan por la parte de la jornada que reportan. El manifiesto de streaming declara todo el catálogo de tu despliegue, que puede llevar más definiciones que las que lista esta página.

Productos

Originación

Servicing

Paquete Brasil

Consignado privado

La jornada de consignado también consume hechos del gateway de descuento en nómina, en los topics de ese producto. Consulta Consignado privado.

Durabilidad y entrega


Cada evento del catálogo lleva la misma política de entrega. Nada publica directo al broker. Lender escribe el evento en un outbox transaccional en la misma transacción de base de datos que el cambio de estado, y un dispatcher lo transmite después. El evento por lo tanto sobrevive a una caída, y sobrevive a una caída del broker mientras el dispatcher reintenta. El presupuesto de reintentos es acotado. El dispatcher da a un evento los intentos de OUTBOX_MAX_DISPATCH_ATTEMPTS, y el valor por defecto es 10. Espera OUTBOX_RETRY_WINDOW_SEC segundos entre intentos, y el valor por defecto es 300. Pasado ese presupuesto el dispatcher deja de reintentar el evento. Sube el presupuesto cuando esperes caídas más largas que la ventana por defecto. Los eventos viajan por el mismo outbox que el relay del ledger, así que el cambio de estado local y el evento se confirman juntos en una sola transacción de base de datos. La intención de posting se les suma cuando el cambio produce una. La contabilización en el ledger llega después. Lee Contabilidad y ejecuciones de devengo.
La entrega es al menos una vez. Un evento puede llegar más de una vez, y una reentrega lleva los mismos hechos. Haz cada handler idempotente sobre el identificador del registro en el payload, que también viaja en ce-subject.

Qué lleva un payload


El body es JSON y lleva los hechos del cambio, no un diff. Un body de loan_application.disbursed:
El dinero y las tasas viajan como strings decimales, nunca como números JSON, igual que sobre REST. Parséalos con un tipo decimal. Las marcas de tiempo son RFC 3339 en UTC. Cada evento lleva los hechos que guarda su propio registro, así que lee la forma del evento al que te suscribes. Un evento brasileño agrega lo que su regulación necesita: una transición de PDD lleva la etapa y la elegibilidad de devengo, y una cotización de prepago lleva el descuento y la reconciliación de IOF.

Verifica el contrato al arrancar


GET /api/v1/streaming/manifest devuelve el manifiesto del catálogo: cada definición de evento con su resource type, event type, versión de esquema y política de entrega. Pide un token bearer con streaming_manifest read. Reporta todo el catálogo declarado del despliegue, no la vista de un tenant. Léelo cuando arranque tu consumidor. Compara cada evento al que te suscribes con el manifiesto: el resource type, el event type y la versión de esquema. Eso detecta un desajuste de nombre o de versión en el arranque en lugar de en tiempo de ejecución.

Próximos pasos


API REST de Lender

La ruta base, autenticación, idempotencia y las operaciones por trabajo.

Arquitectura de Lender

Las partes del servicio, la ruta del outbox y el trabajo por tiempo.

Lender en la plataforma

Dónde se ubica Lender junto a Midaz, Access Manager y el backbone de streaming.

Consignado privado

La jornada de descuento en nómina y los hechos que consume.