Skip to main content
Midaz emite CloudEvents para los hechos de negocio del ledger, CRM, Fees y Tracer. El contrato de integración público actual es la superficie Kafka/lib-streaming. El antiguo stream interno de facturación quedó retirado. Los exchanges heredados de RabbitMQ permanecen fuera del catálogo público.

Superficie de eventos actual: Kafka


Habilita la publicación en cada servicio productor:
Configura STREAMING_CLOUDEVENTS_SOURCE cuando habilites el streaming. Usa ledger para el binario de ledger, CRM y Fees. Usa tracer para Tracer. Cada servicio rechaza cualquier otro valor al iniciar. Midaz usa un tema de hechos de aplicación v3 por cada servicio productor:
  • Ledger, CRM y Fees: lerian.streaming.ledger
  • Tracer: lerian.streaming.tracer
Ejemplos:
  • organization.created viaja por lerian.streaming.ledger
  • transaction.posted viaja por lerian.streaming.ledger
  • fee_charge.applied viaja por lerian.streaming.ledger
  • rule.created viaja por lerian.streaming.tracer
El tipo de CloudEvents está calificado por fuente como studio.lerian.<source>.<resource>.<event>. Los encabezados ce-resourcetype y ce-eventtype llevan la clave de despacho por separado. El encabezado ce-tenantid está siempre presente en Midaz. Lleva el ID de tenant resuelto en el ámbito multi-tenant, y el literal default en el ámbito de un solo tenant o sin tenant. El esquema del payload es 1.0.0 para el catálogo actual. El ledger y Tracer exponen cada uno su catálogo público de eventos de negocio en JSON y el mapeo de temas en:
La ruta del manifiesto permanece disponible incluso cuando deshabilitas la publicación. Úsala como el contrato en tiempo de despliegue en lugar de adivinar los temas. La referencia de eventos de Midaz y la referencia de eventos de Tracer listan todos los eventos de negocio públicos y sus payloads.

Semántica de entrega

Midaz publica estos eventos de negocio directamente después del cambio de estado. No los persiste en un outbox de streaming. Midaz registra los fallos de publicación y no los devuelve al comando de negocio. Los consumidores deben ser idempotentes y deduplicar por (ce-source, ce-id) porque la entrega del broker puede repetir un registro publicado. Los valores monetarios usan cadenas decimales. Nunca los interpretes como punto flotante binario.

Lista de verificación del consumidor

  1. Lee el manifiesto del productor.
  2. Suscríbete al tema de aplicación del productor.
  3. Enruta según ce-resourcetype y ce-eventtype, no según la forma del payload.
  4. Valida ce-schemaversion antes de decodificar.
  5. Persiste tu clave de deduplicación antes de confirmar el registro.

Superficie heredada de RabbitMQ


Midaz también mantiene exchanges heredados de RabbitMQ para eventos seleccionados de sobregiro y auditoría. Esto no es el catálogo completo de lib-streaming. La configuración de ejemplo incluida distribuye estos exchanges salientes deshabilitados. Si los habilitas, tú eres responsable de los bindings de colas, ack/nack, dead-lettering, reintentos y aislamiento de consumidores. El pipeline interno asíncrono de operaciones de saldo de transacciones controlado por RABBITMQ_TRANSACTION_ASYNC no es un feed de eventos público. Usa la superficie de Kafka para las integraciones nuevas, a menos que dependas explícitamente de un contrato heredado de RabbitMQ.

Compatibilidad con Streaming Hub


Streaming Hub sigue los temas de aplicación v3 de Midaz lerian.streaming.ledger y lerian.streaming.tracer. Por eso, una suscripción puede recibir hechos de Midaz cuando habilitas el productor, la ingesta del hub y el runtime de destino. Haz coincidir según la clave de evento de ce-resourcetype y ce-eventtype. No esperes un tema de Kafka por evento.

Decisión