Skip to main content

Por que isso importa


Eventos do ciclo de vida de transações permitem que sistemas downstream reajam sem se acoplar à API de transações. Use-os para notificações, conciliação, analytics e workflows de conformidade. Para o catálogo completo e o contrato de consumo, veja Receber eventos do Midaz.

Habilite eventos do ciclo de vida de transações


O Midaz publica CloudEvents de ciclo de vida pela superfície lib-streaming compatível com Kafka. A publicação vem desabilitada por padrão. Configure a aplicação ledger com uma lista de brokers e o source do roster:
STREAMING_CLOUDEVENTS_SOURCE é obrigatório quando o streaming está habilitado. O binário de ledger, CRM e Fees usa ledger; os fatos de transações são publicados em lerian.streaming.ledger. Se o streaming estiver habilitado sem STREAMING_BROKERS, o Midaz se recusa a iniciar. Quando o streaming está desabilitado, o Midaz usa um emissor no-op.

Eventos de ciclo de vida


O Midaz emite estes fatos públicos para mudanças elegíveis e persistidas no estado da transação: O Midaz não emite um fato de ciclo de vida para uma transação PENDING recém-criada, uma transação NOTED ou uma mudança de estado sem efeito. Uma transação pendente só emite quando uma atualização posterior confirma ou cancela seu status.

Consuma eventos


Assine lerian.streaming.ledger e selecione os fatos necessários pelos cabeçalhos CloudEvents. Não infira o tipo de evento pelo tópico Kafka: o Midaz usa um único tópico de aplicação para fatos de ledger, CRM e Fees. Use o manifesto do produtor como contrato de deploy:
O manifesto permanece disponível mesmo quando a publicação está desabilitada. A referência de eventos do Midaz lista os payloads dos eventos.
A publicação de eventos é best effort e não torna a escrita no broker transacional com a mutação do ledger. Consumidores devem ser idempotentes e deduplicar por (ce-source, ce-id).