Skip to main content

Por que isso importa


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

Habilitar eventos de ciclo de vida da transação


O Midaz publica CloudEvents de ciclo de vida por meio da superfície lib-streaming, compatível com Kafka. A publicação vem desabilitada por padrão. Configure a aplicação do ledger com uma lista de brokers e a fonte do roster dela:
Você deve definir STREAMING_CLOUDEVENTS_SOURCE ao habilitar o streaming. O binário do ledger, CRM e Fees usa ledger. Os fatos de transação são publicados em lerian.streaming.ledger. Se você habilitar o streaming 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 de estado de transação persistidas e elegíveis: 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 no-op. Uma transação pendente emite apenas quando uma atualização de status posterior a confirma ou a cancela.

Consumir eventos


Inscreva-se em lerian.streaming.ledger e selecione os fatos que você precisa usando os headers do CloudEvents. Não infira o tipo de evento a partir do tópico do Kafka: o Midaz usa um único tópico de aplicação para os fatos do ledger, do CRM e do Fees. Use o manifesto do produtor como o contrato em tempo de deploy:
O manifesto continua 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. Os consumidores devem ser idempotentes e deduplicar por (ce-source, ce-id).