lib-streaming. Cada evento viaja en el envoltorio compartido: ce-type nombra el evento como studio.lerian.<resource>.<event>, ce-subject lleva el id del agregado, ce-tenantid el tenant propietario (ausente en el ámbito de un solo tenant) y ce-schemaversion la versión del payload — 1.0.0 para todos los eventos de abajo.
ce-source se configura en el despliegue mediante la variable de entorno STREAMING_CLOUDEVENTS_SOURCE. El ledger usa por defecto lerian.midaz.ledger y la capacidad CRM lerian.midaz.crm. Los importes monetarios — saldos, importes de transacciones y operaciones — viajan por el hilo como cadenas decimales, nunca como floats.
Eventos del ledger
Hechos que el ledger emite a medida que cambian organizaciones, cuentas, saldos y transacciones.Organización
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.organization.created | lerian.streaming.organization.created | Se crea una organización. | id, legalName, doingBusinessAs, legalDocument, address, status, createdAt |
studio.lerian.organization.updated | lerian.streaming.organization.updated | Cambian los campos mutables de una organización. | id, parentOrganizationId, legalName, doingBusinessAs, address, status, updatedAt |
studio.lerian.organization.deleted | lerian.streaming.organization.deleted | Se elimina una organización. | id, deletedAt |
Ledger
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.ledger.created | lerian.streaming.ledger.created | Se crea un ledger dentro de una organización. | id, organizationId, name, status, createdAt |
studio.lerian.ledger.updated | lerian.streaming.ledger.updated | Cambia el nombre o el estado de un ledger. | id, organizationId, name, status, updatedAt |
studio.lerian.ledger.deleted | lerian.streaming.ledger.deleted | Se elimina un ledger. | id, organizationId, deletedAt |
Cuenta
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.account.created | lerian.streaming.account.created | Se abre una cuenta en un ledger. | id, organizationId, ledgerId, name, assetCode, type, alias, portfolioId, segmentId, status, createdAt |
studio.lerian.account.updated | lerian.streaming.account.updated | Cambian los campos mutables de una cuenta. | id, organizationId, ledgerId, name, segmentId, entityId, status, blocked, updatedAt |
studio.lerian.account.deleted | lerian.streaming.account.deleted | Se elimina una cuenta. | id, organizationId, ledgerId, portfolioId, deletedAt |
Activo
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.asset.created | lerian.streaming.asset.created | Se registra un activo en un ledger. | id, organizationId, ledgerId, name, type, code, status, createdAt |
studio.lerian.asset.updated | lerian.streaming.asset.updated | Cambian los campos mutables de un activo. | id, organizationId, ledgerId, name, type, code, status, updatedAt |
studio.lerian.asset.deleted | lerian.streaming.asset.deleted | Se elimina un activo. | id, organizationId, ledgerId, deletedAt |
Portafolio
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.portfolio.created | lerian.streaming.portfolio.created | Se crea un portafolio. | id, organizationId, ledgerId, name, entityId, status, createdAt |
studio.lerian.portfolio.updated | lerian.streaming.portfolio.updated | Cambian los campos mutables de un portafolio. | id, organizationId, ledgerId, name, entityId, status, updatedAt |
studio.lerian.portfolio.deleted | lerian.streaming.portfolio.deleted | Se elimina un portafolio. | id, organizationId, ledgerId, deletedAt |
Segmento
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.segment.created | lerian.streaming.segment.created | Se crea un segmento. | id, organizationId, ledgerId, name, status, createdAt |
studio.lerian.segment.updated | lerian.streaming.segment.updated | Cambian los campos mutables de un segmento. | id, organizationId, ledgerId, name, status, updatedAt |
studio.lerian.segment.deleted | lerian.streaming.segment.deleted | Se elimina un segmento. | id, organizationId, ledgerId, deletedAt |
Ruta de operación
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.operation-route.created | lerian.streaming.operation-route.created | Se crea una ruta de operación. | id, organizationId, ledgerId, title, code, operationType, account, accountingEntries, createdAt |
studio.lerian.operation-route.updated | lerian.streaming.operation-route.updated | Cambian los campos mutables de una ruta de operación. | id, organizationId, ledgerId, title, code, operationType, account, accountingEntries, updatedAt |
studio.lerian.operation-route.deleted | lerian.streaming.operation-route.deleted | Se elimina una ruta de operación. | id, organizationId, ledgerId, deletedAt |
Ruta de transacción
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.transaction-route.created | lerian.streaming.transaction-route.created | Se crea una ruta de transacción. | id, organizationId, ledgerId, title, operationRouteIds, createdAt |
studio.lerian.transaction-route.updated | lerian.streaming.transaction-route.updated | Cambian los campos mutables de una ruta de transacción. | id, organizationId, ledgerId, title, operationRouteIds, updatedAt |
studio.lerian.transaction-route.deleted | lerian.streaming.transaction-route.deleted | Se elimina una ruta de transacción. | id, organizationId, ledgerId, deletedAt |
Saldo
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.balance.created | lerian.streaming.balance.created | Se crea un saldo durante la configuración de la cuenta. | id, organizationId, ledgerId, accountId, alias, key, assetCode, accountType, available, onHold, allowSending, allowReceiving, createdAt |
studio.lerian.balance.changed | lerian.streaming.balance.changed | Una transacción confirmada mueve un saldo — un evento por cada operación que afecta al saldo; los valores reflejan el estado posterior a la operación. | organizationId, ledgerId, accountId, balanceId, assetCode, available, onHold, version, reason, direction, amount, transactionId, operationId, occurredAt |
studio.lerian.balance.config-changed | lerian.streaming.balance.config-changed | Cambian los ajustes de un saldo, o se habilita el sobregiro (se materializa el saldo acompañante). changeType distingue settings_updated de overdraft_enabled. | id, organizationId, ledgerId, accountId, allowSending, allowReceiving, direction, settings, changeType, updatedAt |
studio.lerian.balance.deleted | lerian.streaming.balance.deleted | Se elimina un saldo. | id, organizationId, ledgerId, accountId, deletedAt |
studio.lerian.balance.overdraft-drawn | lerian.streaming.balance.overdraft-drawn | Un débito consume sobregiro más allá de los fondos disponibles (action = drawn). | balanceId, accountId, organizationId, ledgerId, assetCode, transactionId, operationId, action, amount, overdraftBalance, overdraftLimit, occurredAt |
studio.lerian.balance.overdraft-repaid | lerian.streaming.balance.overdraft-repaid | El uso del sobregiro disminuye pero no se salda por completo (action = repaid). | balanceId, accountId, organizationId, ledgerId, assetCode, transactionId, operationId, action, amount, overdraftBalance, overdraftLimit, occurredAt |
studio.lerian.balance.overdraft-cleared | lerian.streaming.balance.overdraft-cleared | El sobregiro se salda por completo — señal terminal (action = cleared). | balanceId, accountId, organizationId, ledgerId, assetCode, transactionId, operationId, action, amount, overdraftBalance, overdraftLimit, occurredAt |
Transacción
Los cuatro eventos del ciclo de vida comparten un mismo payload; solo cambia el tipo de enrutamiento.Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.transaction.posted | lerian.streaming.transaction.posted | Una transacción recién creada se confirma en el almacenamiento con todas sus operaciones persistidas (sin padre). | id, organizationId, ledgerId, status, amount, assetCode, source, destination, route, operations, metadata, createdAt |
studio.lerian.transaction.committed | lerian.streaming.transaction.committed | Una transacción pendiente pasa de PENDING a APPROVED. | id, organizationId, ledgerId, status, amount, assetCode, source, destination, operations, metadata |
studio.lerian.transaction.canceled | lerian.streaming.transaction.canceled | Una transacción pendiente pasa de PENDING a CANCELED. | id, organizationId, ledgerId, status, amount, assetCode, source, destination, operations, metadata |
studio.lerian.transaction.reverted | lerian.streaming.transaction.reverted | Un flujo de reversión crea una transacción hija; parentTransactionId la correlaciona con la original. | id, parentTransactionId, organizationId, ledgerId, status, amount, assetCode, source, destination, operations, metadata |
Eventos del CRM
La capacidad CRM de Midaz gestiona los titulares de cuentas y sus alias. Estos eventos se emiten en el source del CRM (lerian.midaz.crm por defecto), separado del ledger, pero siguen el mismo envoltorio y versionado.
Titular
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.holder.created | lerian.streaming.holder.created | Se crea un titular. | id, organizationId, type, externalId, createdAt |
studio.lerian.holder.updated | lerian.streaming.holder.updated | Cambian los campos mutables de un titular. | id, organizationId, type, externalId, updatedAt |
studio.lerian.holder.deleted | lerian.streaming.holder.deleted | Se elimina un titular. | id, organizationId, deletionType, deletedAt |
Alias
Evento (ce-type) | Tópico | Se dispara cuando | Payload principal |
|---|---|---|---|
studio.lerian.alias.created | lerian.streaming.alias.created | Se crea un alias para un titular y una cuenta. | id, holderId, organizationId, ledgerId, accountId, type, relatedParties, createdAt |
studio.lerian.alias.updated | lerian.streaming.alias.updated | Cambian los campos mutables de un alias. | id, holderId, organizationId, ledgerId, accountId, type, relatedParties, updatedAt |
studio.lerian.alias.deleted | lerian.streaming.alias.deleted | Se elimina un alias. | id, holderId, organizationId, deletionType, deletedAt |
studio.lerian.alias.related-party-deleted | lerian.streaming.alias.related-party-deleted | Se elimina una parte relacionada de un alias. | aliasId, holderId, organizationId, relatedPartyId, deletedAt |

