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. Cada evento financiero que produce un préstamo se contabiliza en el como una transacción de balanceada — y la ruta está construida para nunca perder una contabilización y nunca contabilizar en el lugar equivocado.
Un evento del dominio produce una intención de posting
Cuando un préstamo se desembolsa, se registra un repago, se devenga interés o se revierte una transacción, 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”.
El relay contabiliza una transacción balanceada en Midaz
Un dispatcher del outbox impulsa el relay del ledger, que contabiliza la transacción de partida doble balanceada en Midaz a través del SDK oficial. Los asientos vienen del perfil contable del producto.
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.
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.
Eventos del ciclo de vida
Lender publica un catálogo de 14 eventos de negocio sobre el backbone de streaming de la plataforma (RedPanda, a través de la librería de streaming de Lerian). Cada evento está respaldado por el outbox, es de alcance por tenant y lleva un
source de CloudEvents que define tu despliegue y que además sirve de namespace para los topics de streaming, para que los productos downstream y tus propios servicios puedan reaccionar a la jornada de crédito a medida que avanza. Suscríbete al source que configura tu despliegue en lugar de a un literal fijo.
| Dominio | Eventos |
|---|---|
| Productos | loan_product.created, loan_product_version.created, loan_product.activated, accounting_profile.configured, loan_charge.applied |
| Originación | loan_application.submitted, loan_application.approved, loan_application.rejected, loan_application.withdrawn, loan_application.disbursed |
| Servicing | repayment.recorded, repayment_reversal.recorded, loan_schedule.prepayment_applied, loan_schedule.rescheduled |
La jornada brasileña de consignado privado aporta sus propios eventos encima de este catálogo — señales de margem, averbação y reconciliación. Consulta 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).
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.

