Por qué esto importa
Los eventos del ciclo de vida de las transacciones permiten que los sistemas downstream reaccionen sin acoplarse a la API de transacciones. Úsalos para notificaciones, conciliación, analítica y workflows de cumplimiento. Para conocer el catálogo completo y el contrato del consumidor, consulta Recepción de eventos de Midaz.
Habilitar los eventos del ciclo de vida de las transacciones
Midaz publica los CloudEvents del ciclo de vida a través de la superficie lib-streaming compatible con Kafka. La publicación está deshabilitada de forma predeterminada. Configura la aplicación del ledger con una lista de brokers y su fuente de roster:
STREAMING_CLOUDEVENTS_SOURCE cuando habilitas streaming. El binario de Ledger, CRM y Fees usa ledger. Los hechos de transacción se publican en lerian.streaming.ledger.
Si habilitas streaming sin STREAMING_BROKERS, Midaz se niega a iniciar. Cuando streaming está deshabilitado, Midaz usa un emisor sin efecto (no-op).
Eventos del ciclo de vida
Midaz emite estos hechos públicos para los cambios de estado de transacción persistidos que sean elegibles:
Midaz no emite un hecho del ciclo de vida para una transacción
PENDING recién creada, una transacción NOTED ni un cambio de estado sin efecto. Una transacción pendiente emite solo cuando una actualización de estado posterior la confirma o la cancela.
Consumir eventos
Suscríbete a
lerian.streaming.ledger y selecciona los hechos que necesitas usando los headers de CloudEvents. No infieras el tipo de evento a partir del tema de Kafka: Midaz usa un solo tema de aplicación para los hechos de ledger, CRM y Fees.
Usa el manifiesto del productor como el contrato en tiempo de despliegue:
La publicación de eventos es best effort y no hace que la escritura en el broker sea transaccional junto con la mutación del ledger. Los consumidores deben ser idempotentes y deduplicar según
(ce-source, ce-id).
