Skip to main content

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:
Debes definir 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:
El manifiesto permanece disponible incluso cuando la publicación está deshabilitada. La referencia de eventos de Midaz enumera los payloads de los eventos.
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).