Superficie actual de eventos — Kafka
Habilita la publicación en cada servicio productor:
STREAMING_CLOUDEVENTS_SOURCE es obligatorio cuando el streaming está habilitado. Usa ledger para el binario del ledger, CRM y Fees, y tracer para Tracer; cada servicio rechaza cualquier otro valor al arrancar.
Midaz usa un tópico de hechos por aplicación v3 para cada servicio productor:
- Ledger, CRM y Fees:
lerian.streaming.ledger - Tracer:
lerian.streaming.tracer
organization.createdviaja enlerian.streaming.ledgertransaction.postedviaja enlerian.streaming.ledgerfee_charge.appliedviaja enlerian.streaming.ledgerrule.createdviaja enlerian.streaming.tracer
studio.lerian.<source>.<resource>.<event>. ce-resourcetype y ce-eventtype llevan la clave de dispatch en headers separados. El esquema del payload es 1.0.0 para el catálogo actual.
El ledger y Tracer sirven su catálogo exacto y el mapeo de tópicos en:
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, y los fallos de publicación se registran en logs en lugar de devolverse al comando de negocio. Tus consumidores deben seguir siendo idempotentes y deduplicar por(ce-source, ce-id) porque el broker puede repetir un registro publicado. Los valores monetarios usan cadenas decimales; nunca los analices como números binarios de punto flotante.
Lista de verificación del consumidor
- Lee el manifiesto del productor.
- Suscríbete al tópico de aplicación del productor.
- Enruta por
ce-resourcetypeyce-eventtype, no por la forma del payload. - Valida
ce-schemaversionantes de decodificar. - Persiste la clave de deduplicación antes de confirmar el registro.
Superficie heredada de RabbitMQ
Midaz también mantiene exchanges heredados de RabbitMQ para determinados eventos de transacción, sobregiro y auditoría. Esta no es la totalidad del catálogo de lib-streaming. La configuración de ejemplo incluye esos exchanges de salida deshabilitados. Si los habilitas, tú gestionas los bindings de cola,
ack/nack, dead-lettering, reintentos y aislamiento de consumidores. El pipeline interno asíncrono de operaciones de saldo controlado por RABBITMQ_TRANSACTION_ASYNC no es un feed público de eventos.
Usa la superficie de Kafka para integraciones nuevas, salvo que dependas explícitamente de un contrato heredado de RabbitMQ.
Compatibilidad con Streaming Hub
Streaming Hub sigue los tópicos de aplicación v3 de Midaz
lerian.streaming.ledger y lerian.streaming.tracer. Por ello, una suscripción puede recibir hechos de Midaz cuando el productor, la ingesta del hub y el runtime del destino están habilitados. Haz el match con la clave del evento de ce-resourcetype y ce-eventtype; no esperes un tópico Kafka por evento.

