Skip to main content
O Lender é um primitivo Lerian: ele roda na plataforma, não ao lado dela. Quatro encaixes da plataforma importam quando você o opera: o caminho de lançamento no ledger, o stream de eventos, o multi-tenancy e a observabilidade.

O caminho de lançamento no Midaz


O Lender é a fonte da verdade da jornada de crédito. O Midaz é a fonte da verdade dos saldos. Um desembolso e cada apropriação de juros viram uma transação balanceada de destinada ao . O mesmo vale para um pagamento antecipado que liquida uma conta de empréstimo brasileira contra uma cotação de pagamento antecipado. O caminho preserva essa intenção de lançamento e a entrega de forma idempotente. O ledger chega à consistência assim que a entrega pelo outbox tem sucesso e o dispatcher lança, o que pode atrasar ou ficar pendente enquanto o roteamento estiver indisponível.
1

Um evento de domínio produz uma intenção de lançamento

O Lender persiste uma intenção de lançamento durável em um desembolso, em uma apropriação de juros ou na liquidação de uma cotação brasileira de pagamento antecipado. A intenção cai na mesma transação de banco de dados que muda o estado do domínio. O Lender grava a intenção em um outbox transacional, então ela sobrevive a uma queda entre “estado mudou” e “ledger contabilizou.”
2

O relay lança uma transação balanceada no Midaz

Com o relay do ledger Midaz configurado, um dispatcher do outbox lança a transação balanceada de partidas dobradas pelo SDK oficial. Caso contrário, a intenção durável fica no outbox. As pernas vêm do perfil contábil do produto.
3

A idempotência é durável

Cada lançamento carrega uma chave de idempotência determinística calculada pelo Lender. Um lançamento repetido colapsa na mesma transação do Midaz. A janela de idempotência do próprio Midaz é uma proteção secundária, não a garantia principal.
4

O roteamento falha fechado

A transação é contabilizada na organização de ledger e no ledger que o perfil contábil resolve. Se o roteamento não conseguir resolver um destino não vazio, o lançamento falha fechado: o Lender recusa contabilizar em vez de gravar em um destino vazio ou errado.
Com o relay do ledger configurado, o Lender chega ao Midaz pelo Access Manager. Ele se autentica com credenciais máquina a máquina (M2M) e um JWT de vida curta, por tenant.

Eventos de ciclo de vida


O catálogo de streaming do Lender tem 35 definições: 33 fatos e dois comandos. Com o streaming habilitado e um broker configurado, cada evento que o Lender emite é apoiado no outbox e delimitado por tenant. A emissão em runtime também depende dos controles de funcionalidade aplicáveis. Confira o manifesto em produção e a Referência de eventos do Lender antes de depender de uma definição como integração real. O Lender usa o contrato v3 de stream de aplicação: Todos os fatos compartilham um tópico de aplicação, e todos os comandos compartilham o tópico de comandos. Roteie por ce-resourcetype e ce-eventtype. A versão de schema viaja em ce-schemaversion e não muda o tópico. Os eventos andam no mesmo outbox do relay do ledger, então compartilham uma garantia de durabilidade. A mudança de estado local e o evento fazem commit juntos em uma única transação de banco de dados. A intenção de lançamento se junta a eles quando a mudança produz uma. O dispatcher do outbox aplica o lançamento no ledger depois, quando repassa a intenção ao Midaz. O estado do Lender e a contabilização no Midaz chegam, portanto, à consistência mais tarde, e não na mesma transação.
O Lender conecta 15 chaves do gateway de folha de pagamento em lerian.streaming.consignado-gw. Os consumidores correspondentes são controlados por configuração. O listener de Matcher dele consome match_run.completed em lerian.streaming.matcher. O contrato bate apenas quando o Matcher usa STREAMING_CLOUDEVENTS_SOURCE=matcher e envia ce-source: matcher, ce-type: studio.lerian.matcher.match_run.completed, ce-resourcetype: match_run e ce-eventtype: completed. Veja Eventos do Lender e Consignado privado.

Multi-tenancy


Como todo produto Lerian, o Lender é construído para isolamento total entre tenants desde a base.
  • Persistência com schema por tenant quando o multi-tenancy está habilitado, então os dados de um tenant nunca dividem uma tabela.
  • Eventos e lançamentos no ledger delimitados por tenant: cada evento emitido e cada transação do Midaz carrega o tenant a que pertence.
  • No modo multi-tenant, o relay do ledger resolve um cliente Midaz por tenant. O perfil contábil fornece o destino de ledger por tenant. O roteamento, portanto, falha fechado quando o perfil não fornece destino.
Veja Multi-tenancy para o modelo de toda a plataforma.

Observabilidade


O Lender emite logs estruturados, traces OpenTelemetry e métricas no mesmo stack de observabilidade do resto da plataforma, incluindo métricas de banco de dados, de asserção e de recuperação de panic. Veja Observabilidade.

Próximos passos


Contabilidade e rodadas de apropriação

Aprofunde em regras de lançamento, rodadas de apropriação e referências de diário.

Configuração e deploy

Veja as dependências e a configuração que o caminho de lançamento e o stream de eventos exigem.