Skip to main content
O Lender publica CloudEvents 1.0 em modo binário de conteúdo por meio da lib-streaming v3. A emissão de negócio é apenas via outbox e pelo menos uma vez: a escrita de domínio e o envelope de outbox compartilham uma transação de banco de dados, e o relay publica depois do commit.

Contrato do stream de aplicação

  • ce-source: lender
  • Fatos: lerian.streaming.lender
  • Comandos: lerian.streaming.lender.commands
  • Roteamento de dead letters: lerian.streaming.lender.dlq
  • ce-type: studio.lerian.lender.<resource>.<event>
  • Chave de dispatch: <resource>.<event> a partir de ce-resourcetype e ce-eventtype
O tópico identifica a aplicação produtora e a classe do stream, não um evento específico. Faça o roteamento pelos headers do CloudEvents, não pelo nome do tópico por evento. O Lender expõe o catálogo exato e os tópicos de aplicação em GET /api/v1/streaming/manifest.

Eventos emitidos

O catálogo declara 35 definições. O Lender tem chamadores em produção para 31 delas: 29 fatos e 2 comandos. A tabela separa as chaves do catálogo do tipo de roteamento do CloudEvent.

Contratos de payload emitidos

Os contratos abaixo espelham as tags JSON de data do CloudEvent no contrato publicado do Lender. ? significa que o campo pode estar ausente. Os structs de wire em Go não declaram campos de ponteiro anuláveis. unknown é JSON bruto e pode carregar qualquer valor JSON, incluindo null. Valores decimais são strings JSON, os timestamps são strings RFC 3339 em UTC, e YYYYMM é uma competência de seis dígitos.
Chave de definição: accounting_profile.configuredTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: profile_id
Chaves de definição: assignment_set.approved, assignment_set.acceptedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: assignment_set_idUma composição de cessão é aprovada de forma durável. O evento identifica a aprovação imutável que determina o arquivo de oferta.
Um administrador de fundo aceita a cessão inteira. O evento relata os totais financeiros no nível do conjunto após a baixa dos recebíveis do portfólio do tenant.
Chaves de definição: collection.payment.applied, collection.payment.unapplied, collection.payment.reapplied, collection.payment.refundedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: application_id
Chave de definição: loan_application.submittedTópico: lerian.streaming.lenderEsquema: 2.0.0Assunto: loan_application_id
Chave de definição: loan_application.approvedTópico: lerian.streaming.lenderEsquema: 2.0.0Assunto: loan_application_id
Chave de definição: loan_application.rejectedTópico: lerian.streaming.lenderEsquema: 2.0.0Assunto: loan_application_id
Chave de definição: loan_application.withdrawnTópico: lerian.streaming.lenderEsquema: 2.0.0Assunto: loan_application_id
Chave de definição: loan_application.disbursedTópico: lerian.streaming.lenderEsquema: 2.0.0Assunto: loan_application_id
Chave de definição: loan_charge.appliedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: loan_account_id
Chave de definição: loan_product.createdTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: loan_product_id
Chave de definição: loan_product.activatedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: loan_product_id
Chave de definição: loan_product_version.createdTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: loan_product_version_id
Chave de definição: loan_schedule.prepayment_appliedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: schedule_version_id
Chave de definição: loan_schedule.rescheduledTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: schedule_version_id
Chave de definição: repayment.recordedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: transaction_id
Chave de definição: repayment_reversal.recordedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: transaction_id
Chave de definição: loan_account.pdd_stage_transitionedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: loan_account_id
Chave de definição: prepayment_quote.createdTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: quote_id
Chave de definição: prepayment_settlement.recordedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: settlement_id
Chave de definição: loan_account.debt_balance_changedTópico: lerian.streaming.lenderEsquema: 2.0.0Assunto: loan_account_id
Chave de definição: loan_account.payment_overdueTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: loan_account_id
Chave de definição: consignado.exclusao.requestedTópico: lerian.streaming.lender.commandsEsquema: 1.0.0Assunto: request_ref
Chave de definição: consignado.redirecionamento.requestedTópico: lerian.streaming.lender.commandsEsquema: 1.0.0Assunto: request_ref
Chave de definição: payroll_deduction.refund_requiredTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: receipt_id
Chave de definição: payroll_overdeduction.refund_requiredTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: refund_case_id
Chave de definição: collection.instruction.issuedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: instrument_id
Chave de definição: guarantee_recovery.cash_allocatedTópico: lerian.streaming.lenderEsquema: 1.0.0Assunto: receipt_id

Catalogadas, mas não emitidas

Estas quatro definições estão presentes no manifest, mas não têm chamador de emissão do Lender fora de teste. Não trate suas formas de origem lender como integrações operacionais.

Eventos consumidos

O Lender conecta 15 chaves de fato do gateway a partir de lerian.streaming.consignado-gw e um fato do Matcher a partir de lerian.streaming.matcher. Cada consumidor é controlado por configuração e registrado no bootstrap. O gateway tem caminhos de emissão para as primeiras 13 chaves de gateway listadas. O par de portabilidade apenas chega ao Lender quando seu consumidor de resultados está habilitado e o manifest do gateway em produção declara o evento. O manifest não declara os dois resultados de refinanciamento, então esses dois listeners não recebem tráfego do runtime atual do gateway. O Lender não registra consignado.proposal.accepted. Essa chave não é uma entrada de registro do Lender.

Planos de eventos internos

O Lender também grava tipos de evento de outbox internos para intenções de ledger, trabalho de cobrança e handoffs assinados do hub. Eles são contratos de coordenação locais ao processo, não entradas do catálogo de CloudEvents da lib-streaming. Este inventário público os omite propositalmente.

Regras de entrega e compatibilidade

  • Faça a deduplicação por (ce-source, ce-id) e torne os handlers idempotentes.
  • Leia ce-schemaversion antes de decodificar. A versão é um header do CloudEvents, nunca um sufixo de tópico.
  • Valores monetários e taxas são strings decimais. Os timestamps são RFC 3339 em UTC.
  • Os consumidores de fatos conectados filtram chaves exatas. Eles ignoram e fazem commit dos fatos não correspondentes nos tópicos de aplicação compartilhados. Registros malformados tratados seguem a política de DLQ do consumidor.
  • Um identificador de negócio obrigatório ausente impede a emissão ou a execução do comando. O Lender nunca o sintetiza.