Cinco domínios, um serviço
Cada domínio possui as próprias tabelas e as próprias operações. O identificador da conta de empréstimo é a chave que junta os domínios. O Lender não gera esse identificador. Você fornece o identificador no desembolso, e cada domínio endereça o empréstimo por ele daí em diante.
O encaixe da jurisdição
As regras de crédito mudam conforme o mercado, então nenhum domínio nomeia um mercado. Tudo que é específico de mercado chega por um perfil de jurisdição, que fornece um conjunto fixo de capacidades:
- O motor de tributos que calcula retenções no desembolso e tributos sobre receita na apropriação.
- O calendário de feriados e a convenção de contagem de dias.
- O método de custo efetivo por trás da divulgação de custo.
- O registro de tetos que guarda os limites regulados de taxa e de tarifa.
- As divulgações que o mercado exige.
- O pipeline de desembolso que roda dentro da transação de desembolso.
- O validador de produto e a extensão de prévia do cronograma.
- As políticas de ator que decidem quem pode aprovar e quem pode desembolsar.
Como uma requisição é resolvida
Cada requisição passa pelos mesmos três controles antes de um handler rodar.
1
Autenticação
O Lender espera um JWT bearer. As duas leituras de descoberta de jurisdição são as únicas operações públicas.
2
Resolução do tenant
O tenant vem da identidade validada. Ele nunca é um header, um campo de corpo ou um parâmetro de caminho, então um chamador não consegue escolher um tenant.
3
Resolução da jurisdição
O Lender lê o vínculo de jurisdição do tenant e põe o perfil correspondente no contexto da requisição. A consulta fica em cache por cinco minutos, então uma troca de vínculo passa a valer dentro dessa janela.
O dinheiro sai pelo outbox
O Lender nunca lança no ledger durante a sua requisição. O caminho tem quatro propriedades:
- Um desembolso, uma apropriação de juros e uma cotação brasileira de pagamento antecipado liquidada gravam, cada um, uma intenção de lançamento na mesma transação de banco de dados da linha de negócio. Uma queda entre as duas coisas não é possível.
- Um dispatcher lê a intenção no outbox e a repassa ao Midaz.
- Cada intenção carrega uma chave de idempotência determinística, então um repasse repetido colapsa em uma transação só no ledger.
- O roteamento falha fechado. Um lançamento é contabilizado na organização e no ledger que o perfil contábil resolve, e um deploy single-tenant pode recorrer ao padrão configurado dele. Quando nenhum destino é resolvido, o Lender não lança nada.
O que o serviço expõe
Leia a referência de health e readiness para o contrato de probe compartilhado entre os produtos Lerian.
Armazenamentos
Configuração e deploy lista os ajustes por trás de cada um.
Trabalho disparado por tempo
Nem tudo começa com uma requisição. A rodada de apropriação também roda como job agendado. Cada job fica desligado até você habilitar, e você define o agendamento dele. Veja Contabilidade e rodadas de apropriação.
Próximos passos
Como funciona a originação
Uma proposta de enviada até desembolsada, e a transação que faz o trabalho.
Conceitos centrais
O vocabulário que o produto inteiro compartilha.
O Lender na plataforma
O caminho de lançamento, o catálogo de eventos e o isolamento entre tenants.
Configuração e deploy
Dependências, o container e os ajustes que moldam um deploy.

