Skip to main content
Midaz emite sus hechos de negocio JSON públicos como CloudEvents 1.0 en modo de contenido binario sobre Kafka a través de lib-streaming.

Catálogo JSON público del ledger

El manifest público del ledger contiene las siguientes definiciones verificadas. Cada definición catalogada tiene una ruta de emisión en producción fuera de las pruebas.

Envelope de CloudEvents

Cada hecho JSON público usa el envelope compartido a continuación. Los headers transportan la información de enrutamiento y de esquema. El valor de Kafka transporta el objeto data en JSON.

Temas, manifest y enrutamiento

El tema de la aplicación identifica la aplicación productora, no un evento individual. Enruta un registro por ce-resourcetype y ce-eventtype, y valida ce-schemaversion antes de decodificar su valor data.
  • Hechos: lerian.streaming.ledger
  • Ruta DLQ: lerian.streaming.ledger.dlq
  • Manifest: GET /v1/streaming/manifest expone el catálogo JSON público y el mapeo de temas, incluso mientras la publicación está deshabilitada.

Semántica de entrega y fallos

La publicación está deshabilitada hasta que STREAMING_ENABLED=true y la configuración del broker se completa con éxito. Cuando está habilitada, Midaz emite después del cambio de estado de negocio. No conecta un outbox writer, un outbox repository, un outbox transaccional ni un outbox relay de lib-streaming.
  • Política: cada definición JSON pública es un fact con entrega directa, manejo de DLQ on_routable_failure y fallback_on_circuit_open configurado por lib-streaming v3.
  • Límite real de Midaz: como no hay un outbox writer conectado, el fallback de circuito abierto no puede persistir un evento. Las rutas de emisión registran y absorben los errores de publicación en lugar de devolverlos al comando de negocio.
  • Requisito del consumidor: la entrega del broker es al menos una vez para los registros publicados. Haz que los handlers sean idempotentes y deduplica con (ce-source, ce-id).

Plano legado separado de RabbitMQ

Midaz también tiene exchanges de compatibilidad para notificaciones seleccionadas de transacción, sobregiro y auditoría. Son un plano legado separado de RabbitMQ, no un contrato de lib-streaming ni una representación completa de este catálogo JSON público de 49 eventos. Se recomienda que las integraciones nuevas usen el contrato de Kafka de esta página.

Contratos data completos

Estas declaraciones de estilo TypeScript reflejan la forma de wire del productor. Cada nombre de campo es su nombre JSON. ? significa que el campo tiene omitempty. | null significa que el campo es nullable y el productor siempre lo incluye. Un comentario de tipo de origen preserva exactamente el tipo del inventario. Los valores decimales son strings JSON, nunca números de punto flotante binarios.

Mapeos de tipos de origen compartidos

Evento: studio.lerian.ledger.account.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la apertura de una cuenta en un ledger.Asunto: ID de cuenta (p.ID)
Evento: studio.lerian.ledger.account.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de una cuenta.Asunto: ID de cuenta (p.ID)
Evento: studio.lerian.ledger.account.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de una cuenta.Asunto: ID de cuenta (p.ID)
Evento: studio.lerian.ledger.asset.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: el registro de un activo en un ledger.Asunto: ID de activo (p.ID)
Evento: studio.lerian.ledger.asset.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de un activo.Asunto: ID de activo (p.ID)
Evento: studio.lerian.ledger.asset.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de un activo.Asunto: ID de activo (p.ID)
Evento: studio.lerian.ledger.balance.changedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Una transacción confirmada mueve un saldo (un evento por cada operación que afecta el saldo). Los valores reflejan el estado después de la operación.Asunto: ID de transacción e ID de operación (p.TransactionID + ":" + p.OperationID)
Evento: studio.lerian.ledger.balance.config_changedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambia la configuración de un saldo, o se habilita el sobregiro (se materializa el saldo complementario). changeType distingue settings_updated de overdraft_enabled.Asunto: ID de saldo (p.ID)
Evento: studio.lerian.ledger.balance.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de un saldo durante la configuración de la cuenta.Asunto: ID de saldo (p.ID)
Evento: studio.lerian.ledger.balance.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de un saldo.Asunto: ID de saldo (p.ID)
Evento: studio.lerian.ledger.balance.overdraft_clearedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: El sobregiro se repaga por completo, una señal terminal (action = cleared).Asunto: ID de transacción e ID de operación (p.TransactionID + ":" + p.OperationID)
Evento: studio.lerian.ledger.balance.overdraft_drawnTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Un débito consume sobregiro más allá de los fondos disponibles (action = drawn).Asunto: ID de transacción e ID de operación (p.TransactionID + ":" + p.OperationID)
Evento: studio.lerian.ledger.balance.overdraft_repaidTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: El uso del sobregiro disminuye pero no se salda por completo (action = repaid).Asunto: ID de transacción e ID de operación (p.TransactionID + ":" + p.OperationID)
Evento: studio.lerian.ledger.fee_billing_packages.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de un paquete de facturación.Asunto: ID de paquete de facturación (p.ID)
Evento: studio.lerian.ledger.fee_billing_packages.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de un paquete de facturación.Asunto: ID de paquete de facturación (p.ID)
Evento: studio.lerian.ledger.fee_billing_packages.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de un paquete de facturación.Asunto: ID de paquete de facturación (p.ID)
Evento: studio.lerian.ledger.fee_charge.appliedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la aplicación de un paquete de comisiones a una transacción confirmada.Asunto: ID de transacción (p.TransactionID)
Evento: studio.lerian.ledger.fee_packages.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de un paquete de comisiones.Asunto: ID de paquete de comisiones (p.ID)
Evento: studio.lerian.ledger.fee_packages.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de un paquete de comisiones.Asunto: ID de paquete de comisiones (p.ID)
Evento: studio.lerian.ledger.fee_packages.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de un paquete de comisiones.Asunto: ID de paquete de comisiones (p.ID)
Evento: studio.lerian.ledger.holder.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de un titular.Asunto: ID de titular (p.ID)
Evento: studio.lerian.ledger.holder.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de un titular.Asunto: ID de titular (p.ID)
Evento: studio.lerian.ledger.holder.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de un titular.Asunto: ID de titular (p.ID)
Evento: studio.lerian.ledger.instrument.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de un instrumento para un titular y una cuenta.Asunto: ID de instrumento (p.ID)
Evento: studio.lerian.ledger.instrument.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de un instrumento.Asunto: ID de instrumento (p.ID)
Evento: studio.lerian.ledger.instrument.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de un instrumento.Asunto: ID de instrumento (p.ID)
Evento: studio.lerian.ledger.ledger.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de un ledger dentro de una organización.Asunto: ID de ledger (p.ID)
Evento: studio.lerian.ledger.ledger.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de un ledger.Asunto: ID de ledger (p.ID)
Evento: studio.lerian.ledger.ledger.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambia el nombre o el estado de un ledger.Asunto: ID de ledger (p.ID)
Evento: studio.lerian.ledger.operation_route.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de una ruta de operación.Asunto: ID de ruta de operación (p.ID)
Evento: studio.lerian.ledger.operation_route.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de una ruta de operación.Asunto: ID de ruta de operación (p.ID)
Evento: studio.lerian.ledger.operation_route.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de una ruta de operación.Asunto: ID de ruta de operación (p.ID)
Evento: studio.lerian.ledger.organization.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de una organización.Asunto: ID de organización (p.ID)
Evento: studio.lerian.ledger.organization.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de una organización.Asunto: ID de organización (p.ID)
Evento: studio.lerian.ledger.organization.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de una organización.Asunto: ID de organización (p.ID)
Evento: studio.lerian.ledger.portfolio.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de un portafolio.Asunto: ID de portafolio (p.ID)
Evento: studio.lerian.ledger.portfolio.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de un portafolio.Asunto: ID de portafolio (p.ID)
Evento: studio.lerian.ledger.portfolio.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de un portafolio.Asunto: ID de portafolio (p.ID)
Evento: studio.lerian.ledger.segment.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de un segmento.Asunto: ID de segmento (p.ID)
Evento: studio.lerian.ledger.segment.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de un segmento.Asunto: ID de segmento (p.ID)
Evento: studio.lerian.ledger.segment.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de un segmento.Asunto: ID de segmento (p.ID)
Evento: studio.lerian.ledger.transaction.canceledTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Una transacción pendiente pasa de PENDING a CANCELED.Asunto: ID de transacción (p.ID)
Evento: studio.lerian.ledger.transaction.committedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Una transacción pendiente pasa de PENDING a APPROVED.Asunto: ID de transacción (p.ID)
Evento: studio.lerian.ledger.transaction.postedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: el commit de una transacción recién creada en el almacenamiento, con todas sus operaciones persistidas (sin padre).Asunto: ID de transacción (p.ID)
Evento: studio.lerian.ledger.transaction.revertedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Un flujo de reversión crea una transacción hija. parentTransactionId la correlaciona con la original.Asunto: ID de transacción (p.ID)
Evento: studio.lerian.ledger.transaction_route.createdTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la creación de una ruta de transacción.Asunto: ID de ruta de transacción (p.ID)
Evento: studio.lerian.ledger.transaction_route.deletedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: la eliminación de una ruta de transacción.Asunto: ID de ruta de transacción (p.ID)
Evento: studio.lerian.ledger.transaction_route.updatedTema: lerian.streaming.ledgerRuta DLQ: lerian.streaming.ledger.dlqEsquema: 1.0.0Disparador: Cambian los campos mutables de una ruta de transacción.Asunto: ID de ruta de transacción (p.ID)