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:
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.
Qué lleva un payload
El body es JSON y lleva los hechos del cambio, no un diff. Un body de
loan_application.disbursed:
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.

