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:
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:
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).
