Skip to main content
Lender es un primitivo de Lerian: corre sobre la plataforma, no al lado de ella. Cuatro costuras con la plataforma importan cuando lo operas — la ruta de posting al ledger, el flujo de eventos, la multi-tenancy y la observabilidad.

La ruta de posting a Midaz


Lender es la fuente de verdad de la jornada de crédito; Midaz es la fuente de verdad de los saldos. Un desembolso y cada devengo de interés se vuelven una transacción de balanceada destinada al . También un prepago que liquida una cuenta de préstamo brasileña contra una cotización de prepago. La ruta preserva esa intención de posting y la entrega de forma idempotente. El ledger alcanza consistencia una vez que la entrega del outbox tiene éxito y el dispatcher contabiliza, lo que puede demorarse o quedar pendiente mientras el enrutamiento no esté disponible.
1

Un evento del dominio produce una intención de posting

Cuando un préstamo se desembolsa, se devenga interés o se liquida una cotización de prepago brasileña, Lender persiste una intención de posting durable en la misma transacción de base de datos que cambia el estado del dominio. La intención se escribe en un outbox transaccional, de modo que sobrevive a una caída entre “el estado cambió” y “se contabilizó en el ledger”.
2

El relay contabiliza una transacción balanceada en Midaz

Cuando el relay del ledger de Midaz está configurado, un dispatcher del outbox contabiliza la transacción de partida doble balanceada mediante el SDK oficial. De lo contrario, la intención durable queda en el outbox. Los asientos vienen del perfil contable del producto.
3

La idempotencia es durable

Cada posting lleva una clave de idempotencia determinista calculada por Lender. Un posting reintentado colapsa a la misma transacción de Midaz; la propia ventana de idempotencia de Midaz es un respaldo, no la guarda principal.
4

El enrutamiento falla cerrado

La transacción se contabiliza en la organización de ledger y el ledger que resuelve el perfil contable. Si el enrutamiento no puede resolver un destino no vacío, el posting falla cerrado (fail-closed) — Lender se niega a contabilizar en lugar de escribir en un destino vacío o equivocado.
Cuando el relay del ledger está configurado, Lender llega a Midaz a través de Access Manager: se autentica con credenciales máquina-a-máquina (M2M) y un JWT de vida corta, por tenant.

Eventos del ciclo de vida


El catálogo de streaming de Lender contiene 33 definiciones: 31 hechos y dos comandos. Cuando el streaming está habilitado y hay un broker configurado, cada evento que emite Lender está respaldado por el outbox y tiene alcance por tenant. La emisión en runtime también depende de las flags de funcionalidad aplicables. Consulta el manifiesto desplegado y la referencia de eventos de Lender antes de depender de una definición como integración activa. Lender usa el contrato v3 de stream por aplicación: Todos los hechos comparten un topic de aplicación y todos los comandos comparten el topic de comandos. Enruta por ce-resourcetype y ce-eventtype; la versión del schema viaja en ce-schemaversion y no cambia el topic. Como los eventos viajan por el mismo outbox que el relay del ledger, comparten una sola garantía de durabilidad: 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. El dispatcher del outbox aplica la contabilización en el ledger después, cuando transmite la intención a Midaz — de modo que el estado de Lender y la contabilización en Midaz son eventualmente consistentes, no se confirman en la misma transacción.
Lender conecta 15 claves del gateway de nómina desde lerian.streaming.consignado-gw; los consumidores correspondientes se controlan mediante configuración. Su listener de Matcher consume match_run.completed desde lerian.streaming.matcher; el contrato coincide solo cuando Matcher usa STREAMING_CLOUDEVENTS_SOURCE=matcher y envía ce-source: matcher, ce-type: studio.lerian.matcher.match_run.completed, ce-resourcetype: match_run y ce-eventtype: completed. Consulta Eventos de Lender y Consignado privado.

Multi-tenancy


Como todo producto Lerian, Lender está construido para aislamiento total de tenants desde su base.
  • Persistencia schema-por-tenant cuando la multi-tenancy está habilitada, de modo que los datos de un tenant nunca comparten tabla.
  • Eventos y postings al ledger de alcance por tenant — cada evento emitido y cada transacción de Midaz lleva el tenant al que pertenece.
  • En modo multi-tenant, el relay del ledger resuelve un cliente de Midaz por tenant, y el perfil contable aporta el destino de ledger por tenant (por eso el enrutamiento falla cerrado cuando falta un destino).
Consulta Multi-tenancy para el modelo a nivel de plataforma.

Observabilidad


Lender emite logs estructurados, trazas OpenTelemetry y métricas sobre el mismo stack de observabilidad que el resto de la plataforma, incluyendo métricas de base de datos, de aserciones y de recuperación de panics. Consulta Observabilidad.

Próximos pasos


Contabilidad y ejecuciones de devengo

Profundiza en las reglas de posting, las ejecuciones de devengo y las referencias de asiento.

Configuración y despliegue

Mira las dependencias y la configuración que requieren la ruta de posting y el flujo de eventos.