Skip to main content
Lender publica CloudEvents 1.0 en modo de contenido binario a través de lib-streaming v3. La emisión de negocio es solo mediante outbox y al menos una vez: la escritura de dominio y el envelope del outbox comparten una única transacción de base de datos, y el relay publica después del commit.

Contrato de stream de aplicación

  • ce-source: lender
  • Hechos: lerian.streaming.lender
  • Comandos: lerian.streaming.lender.commands
  • Ruta de dead letters: lerian.streaming.lender.dlq
  • ce-type: studio.lerian.lender.<resource>.<event>
  • Clave de despacho: <resource>.<event> a partir de ce-resourcetype y ce-eventtype
El tema identifica la aplicación productora y la clase de stream, no un evento individual. Enruta por los headers de CloudEvents, no por un nombre de tema por evento. Lender expone el catálogo exacto y los temas de aplicación en GET /api/v1/streaming/manifest.

Eventos emitidos

El catálogo declara 35 definiciones. Lender tiene llamadores de producción para 31 de ellas: 29 hechos y 2 comandos. La tabla separa las claves de catálogo del tipo de enrutamiento de CloudEvent.

Contratos de payload emitidos

Los contratos siguientes reflejan las etiquetas JSON data de CloudEvent en el contrato publicado de Lender. ? significa que el campo puede estar ausente. Los structs de wire en Go no declaran campos de puntero anulables. unknown es JSON sin procesar y puede llevar cualquier valor JSON, incluido null. Los valores decimales son strings JSON, las marcas de tiempo son strings RFC 3339 en UTC, y YYYYMM es una competência de seis dígitos.
Clave de definición: accounting_profile.configuredTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: profile_id
Claves de definición: assignment_set.approved, assignment_set.acceptedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: assignment_set_idUna composición de cesión queda aprobada de forma duradera. El evento identifica la aprobación inmutable que determina el archivo de oferta.
Un administrador de fondos acepta la cesión completa. El evento reporta los totales monetarios a nivel de conjunto después de la baja contable de las cuentas por cobrar del portafolio del tenant.
Claves de definición: collection.payment.applied, collection.payment.unapplied, collection.payment.reapplied, collection.payment.refundedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: application_id
Clave de definición: loan_application.submittedTema: lerian.streaming.lenderEsquema: 2.0.0Asunto: loan_application_id
Clave de definición: loan_application.approvedTema: lerian.streaming.lenderEsquema: 2.0.0Asunto: loan_application_id
Clave de definición: loan_application.rejectedTema: lerian.streaming.lenderEsquema: 2.0.0Asunto: loan_application_id
Clave de definición: loan_application.withdrawnTema: lerian.streaming.lenderEsquema: 2.0.0Asunto: loan_application_id
Clave de definición: loan_application.disbursedTema: lerian.streaming.lenderEsquema: 2.0.0Asunto: loan_application_id
Clave de definición: loan_charge.appliedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: loan_account_id
Clave de definición: loan_product.createdTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: loan_product_id
Clave de definición: loan_product.activatedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: loan_product_id
Clave de definición: loan_product_version.createdTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: loan_product_version_id
Clave de definición: loan_schedule.prepayment_appliedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: schedule_version_id
Clave de definición: loan_schedule.rescheduledTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: schedule_version_id
Clave de definición: repayment.recordedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: transaction_id
Clave de definición: repayment_reversal.recordedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: transaction_id
Clave de definición: loan_account.pdd_stage_transitionedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: loan_account_id
Clave de definición: prepayment_quote.createdTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: quote_id
Clave de definición: prepayment_settlement.recordedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: settlement_id
Clave de definición: loan_account.debt_balance_changedTema: lerian.streaming.lenderEsquema: 2.0.0Asunto: loan_account_id
Clave de definición: loan_account.payment_overdueTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: loan_account_id
Clave de definición: consignado.exclusao.requestedTema: lerian.streaming.lender.commandsEsquema: 1.0.0Asunto: request_ref
Clave de definición: consignado.redirecionamento.requestedTema: lerian.streaming.lender.commandsEsquema: 1.0.0Asunto: request_ref
Clave de definición: payroll_deduction.refund_requiredTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: receipt_id
Clave de definición: payroll_overdeduction.refund_requiredTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: refund_case_id
Clave de definición: collection.instruction.issuedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: instrument_id
Clave de definición: guarantee_recovery.cash_allocatedTema: lerian.streaming.lenderEsquema: 1.0.0Asunto: receipt_id

Catalogados pero no emitidos

Estas cuatro definiciones están presentes en el manifest, pero no tienen ningún llamador de emisión de Lender que no sea de prueba. No trates sus formas con origen en lender como integraciones operativas.

Eventos consumidos

Lender conecta 15 claves de hechos del gateway desde lerian.streaming.consignado-gw y un hecho de Matcher desde lerian.streaming.matcher. Cada consumidor está controlado por configuración y registrado en el bootstrap. El gateway tiene rutas de emisión para las primeras 13 claves de gateway listadas. El par de portabilidad llega a Lender solo cuando su consumidor de resultado está habilitado y el manifest del gateway desplegado declara el evento. El manifest no declara los dos resultados de refinanciamiento, por lo que esos dos listeners no reciben tráfico del runtime actual del gateway. Lender no registra consignado.proposal.accepted. Esa clave no es una entrada de contabilización para Lender.

Planos internos de eventos

Lender también escribe tipos de eventos de outbox internos para intenciones de ledger, trabajo de cobranza y traspasos firmados al hub. Son contratos de coordinación locales al proceso, no entradas del catálogo de CloudEvents de lib-streaming. Este inventario público los omite a propósito.

Reglas de entrega y compatibilidad

  • Deduplica por (ce-source, ce-id) y haz que los handlers sean idempotentes.
  • Lee ce-schemaversion antes de decodificar. La versión es un header de CloudEvents, nunca un sufijo de tema.
  • El dinero y las tasas son strings decimales. Las marcas de tiempo son RFC 3339 en UTC.
  • Los consumidores de hechos conectados filtran claves exactas. Omiten y confirman los hechos no coincidentes en los temas de aplicación compartidos. Los registros manejados con formato incorrecto siguen la política de DLQ del consumidor.
  • La ausencia de un identificador de negocio requerido impide la emisión o la ejecución del comando. Lender nunca lo sintetiza.