Skip to main content
O Lender publica um evento de negócio sempre que um produto, uma solicitação, uma conta de empréstimo ou um registro regulatório brasileiro muda de estado. Assine esses eventos e o seu serviço reage a cada mudança à medida que ela acontece, sem loop de polling. Cada evento é respaldado pelo outbox e tem escopo por tenant. Esta página cobre o lado do consumidor: o que chega no wire, quais eventos existem e como deixar um handler seguro.

Ative a publicação


Publicar eventos é uma decisão de implantação. A originação funciona sem ela. O Lender se recusa a iniciar quando a publicação está ativa e algo disso está errado, então uma implantação mal configurada falha na inicialização em vez de perder eventos em silêncio.

O contrato do wire


O source de CloudEvents é o literal fixo lender, e o source também serve de namespace para cada tópico. Assim, um assinante lê: Para um desembolso isso resolve para:
As mensagens viajam no modo binário do CloudEvents, versão 1.0. Os atributos de contexto viajam como headers da mensagem: ce-specversion, ce-id, ce-source, ce-type, ce-time, ce-schemaversion, ce-resourcetype e ce-eventtype em cada mensagem, mais ce-subject, ce-datacontenttype e ce-tenantid quando o Lender tem um valor para eles. ce-schemaversion é 1.0.0 para cada evento do catálogo. O tópico não carrega sufixo de versão nesta versão de esquema, então assine o nome de tópico simples.
Assine por tópico. O tópico é o endereço, e ele se compõe do resource type e do event type — não de um nome interno de catálogo. Leia a coluna de tópico nas tabelas abaixo em vez de derivar um a partir da descrição de um evento.

Os eventos


Esta página cobre os 21 eventos da jornada de crédito documentada. Eles se agrupam pela parte da jornada que reportam. O manifesto de streaming declara o catálogo inteiro da sua implantação, que pode carregar mais definições do que esta página lista.

Produtos

Originação

Servicing

Pacote Brasil

Consignado privado

A jornada de consignado também consome fatos do gateway de desconto em folha, nos tópicos daquele produto. Veja Consignado privado.

Durabilidade e entrega


Cada evento do catálogo carrega a mesma política de entrega. Nada publica direto no broker. O Lender escreve o evento num outbox transacional na mesma transação de banco de dados que a mudança de estado, e um dispatcher o transmite depois. O evento portanto sobrevive a uma queda, e sobrevive a uma queda do broker enquanto o dispatcher tenta de novo. O orçamento de tentativas é limitado. O dispatcher dá a um evento as tentativas de OUTBOX_MAX_DISPATCH_ATTEMPTS, e o valor padrão é 10. Ele espera OUTBOX_RETRY_WINDOW_SEC segundos entre tentativas, e o valor padrão é 300. Passado esse orçamento o dispatcher para de tentar o evento. Aumente o orçamento quando você esperar quedas mais longas que a janela padrão. Os eventos viajam pelo mesmo outbox que o relay do ledger, então a mudança de estado local e o evento são confirmados juntos numa única transação de banco de dados. A intenção de posting se junta a eles quando a mudança produz uma. A contabilização no ledger chega depois. Leia Contabilidade e rotinas de apropriação.
A entrega é ao menos uma vez. Um evento pode chegar mais de uma vez, e uma reentrega carrega os mesmos fatos. Deixe cada handler idempotente sobre o identificador do registro no payload, que também viaja em ce-subject.

O que um payload carrega


O body é JSON e carrega os fatos da mudança, não um diff. Um body de loan_application.disbursed:
Dinheiro e taxas viajam como strings decimais, nunca como números JSON, igual ao que acontece sobre REST. Faça o parse com um tipo decimal. Os timestamps são RFC 3339 em UTC. Cada evento carrega os fatos que o próprio registro guarda, então leia o formato do evento que você assina. Um evento brasileiro acrescenta o que a regulação dele precisa: uma transição de PDD carrega o estágio e a elegibilidade de apropriação, e uma cotação de pré-pagamento carrega o desconto e a reconciliação de IOF.

Confira o contrato na inicialização


GET /api/v1/streaming/manifest devolve o manifesto do catálogo: cada definição de evento com seu resource type, event type, versão de esquema e política de entrega. Ele pede um token bearer com streaming_manifest read. Ele reporta o catálogo declarado inteiro da implantação, não a visão de um tenant. Leia-o quando o seu consumidor iniciar. Compare cada evento ao qual você assina com o manifesto: o resource type, o event type e a versão de esquema. Isso detecta um desencontro de nome ou de versão na inicialização em vez de em tempo de execução.

Próximos passos


API REST do Lender

O caminho base, autenticação, idempotência e as operações por trabalho.

Arquitetura do Lender

As partes do serviço, a rota do outbox e o trabalho por tempo.

O Lender na plataforma

Onde o Lender fica ao lado do Midaz, do Access Manager e do backbone de streaming.

Consignado privado

A jornada de desconto em folha e os fatos que ela consome.