Saltar al contenido principal
Midaz emite eventos de dominio como mensajes CloudEvents 1.0 en modo de contenido binario sobre Kafka, publicados mediante 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ópicoSe dispara cuandoPayload principal
studio.lerian.organization.createdlerian.streaming.organization.createdSe crea una organización.id, legalName, doingBusinessAs, legalDocument, address, status, createdAt
studio.lerian.organization.updatedlerian.streaming.organization.updatedCambian los campos mutables de una organización.id, parentOrganizationId, legalName, doingBusinessAs, address, status, updatedAt
studio.lerian.organization.deletedlerian.streaming.organization.deletedSe elimina una organización.id, deletedAt

Ledger

Evento (ce-type)TópicoSe dispara cuandoPayload principal
studio.lerian.ledger.createdlerian.streaming.ledger.createdSe crea un ledger dentro de una organización.id, organizationId, name, status, createdAt
studio.lerian.ledger.updatedlerian.streaming.ledger.updatedCambia el nombre o el estado de un ledger.id, organizationId, name, status, updatedAt
studio.lerian.ledger.deletedlerian.streaming.ledger.deletedSe elimina un ledger.id, organizationId, deletedAt

Cuenta

Evento (ce-type)TópicoSe dispara cuandoPayload principal
studio.lerian.account.createdlerian.streaming.account.createdSe abre una cuenta en un ledger.id, organizationId, ledgerId, name, assetCode, type, alias, portfolioId, segmentId, status, createdAt
studio.lerian.account.updatedlerian.streaming.account.updatedCambian los campos mutables de una cuenta.id, organizationId, ledgerId, name, segmentId, entityId, status, blocked, updatedAt
studio.lerian.account.deletedlerian.streaming.account.deletedSe elimina una cuenta.id, organizationId, ledgerId, portfolioId, deletedAt

Activo

Evento (ce-type)TópicoSe dispara cuandoPayload principal
studio.lerian.asset.createdlerian.streaming.asset.createdSe registra un activo en un ledger.id, organizationId, ledgerId, name, type, code, status, createdAt
studio.lerian.asset.updatedlerian.streaming.asset.updatedCambian los campos mutables de un activo.id, organizationId, ledgerId, name, type, code, status, updatedAt
studio.lerian.asset.deletedlerian.streaming.asset.deletedSe elimina un activo.id, organizationId, ledgerId, deletedAt

Portafolio

Evento (ce-type)TópicoSe dispara cuandoPayload principal
studio.lerian.portfolio.createdlerian.streaming.portfolio.createdSe crea un portafolio.id, organizationId, ledgerId, name, entityId, status, createdAt
studio.lerian.portfolio.updatedlerian.streaming.portfolio.updatedCambian los campos mutables de un portafolio.id, organizationId, ledgerId, name, entityId, status, updatedAt
studio.lerian.portfolio.deletedlerian.streaming.portfolio.deletedSe elimina un portafolio.id, organizationId, ledgerId, deletedAt

Segmento

Evento (ce-type)TópicoSe dispara cuandoPayload principal
studio.lerian.segment.createdlerian.streaming.segment.createdSe crea un segmento.id, organizationId, ledgerId, name, status, createdAt
studio.lerian.segment.updatedlerian.streaming.segment.updatedCambian los campos mutables de un segmento.id, organizationId, ledgerId, name, status, updatedAt
studio.lerian.segment.deletedlerian.streaming.segment.deletedSe elimina un segmento.id, organizationId, ledgerId, deletedAt

Ruta de operación

Evento (ce-type)TópicoSe dispara cuandoPayload principal
studio.lerian.operation-route.createdlerian.streaming.operation-route.createdSe crea una ruta de operación.id, organizationId, ledgerId, title, code, operationType, account, accountingEntries, createdAt
studio.lerian.operation-route.updatedlerian.streaming.operation-route.updatedCambian los campos mutables de una ruta de operación.id, organizationId, ledgerId, title, code, operationType, account, accountingEntries, updatedAt
studio.lerian.operation-route.deletedlerian.streaming.operation-route.deletedSe elimina una ruta de operación.id, organizationId, ledgerId, deletedAt

Ruta de transacción

Evento (ce-type)TópicoSe dispara cuandoPayload principal
studio.lerian.transaction-route.createdlerian.streaming.transaction-route.createdSe crea una ruta de transacción.id, organizationId, ledgerId, title, operationRouteIds, createdAt
studio.lerian.transaction-route.updatedlerian.streaming.transaction-route.updatedCambian los campos mutables de una ruta de transacción.id, organizationId, ledgerId, title, operationRouteIds, updatedAt
studio.lerian.transaction-route.deletedlerian.streaming.transaction-route.deletedSe elimina una ruta de transacción.id, organizationId, ledgerId, deletedAt

Saldo

Evento (ce-type)TópicoSe dispara cuandoPayload principal
studio.lerian.balance.createdlerian.streaming.balance.createdSe 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.changedlerian.streaming.balance.changedUna 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-changedlerian.streaming.balance.config-changedCambian 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.deletedlerian.streaming.balance.deletedSe elimina un saldo.id, organizationId, ledgerId, accountId, deletedAt
studio.lerian.balance.overdraft-drawnlerian.streaming.balance.overdraft-drawnUn 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-repaidlerian.streaming.balance.overdraft-repaidEl 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-clearedlerian.streaming.balance.overdraft-clearedEl 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ópicoSe dispara cuandoPayload principal
studio.lerian.transaction.postedlerian.streaming.transaction.postedUna 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.committedlerian.streaming.transaction.committedUna transacción pendiente pasa de PENDING a APPROVED.id, organizationId, ledgerId, status, amount, assetCode, source, destination, operations, metadata
studio.lerian.transaction.canceledlerian.streaming.transaction.canceledUna transacción pendiente pasa de PENDING a CANCELED.id, organizationId, ledgerId, status, amount, assetCode, source, destination, operations, metadata
studio.lerian.transaction.revertedlerian.streaming.transaction.revertedUn 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ópicoSe dispara cuandoPayload principal
studio.lerian.holder.createdlerian.streaming.holder.createdSe crea un titular.id, organizationId, type, externalId, createdAt
studio.lerian.holder.updatedlerian.streaming.holder.updatedCambian los campos mutables de un titular.id, organizationId, type, externalId, updatedAt
studio.lerian.holder.deletedlerian.streaming.holder.deletedSe elimina un titular.id, organizationId, deletionType, deletedAt

Alias

Evento (ce-type)TópicoSe dispara cuandoPayload principal
studio.lerian.alias.createdlerian.streaming.alias.createdSe crea un alias para un titular y una cuenta.id, holderId, organizationId, ledgerId, accountId, type, relatedParties, createdAt
studio.lerian.alias.updatedlerian.streaming.alias.updatedCambian los campos mutables de un alias.id, holderId, organizationId, ledgerId, accountId, type, relatedParties, updatedAt
studio.lerian.alias.deletedlerian.streaming.alias.deletedSe elimina un alias.id, holderId, organizationId, deletionType, deletedAt
studio.lerian.alias.related-party-deletedlerian.streaming.alias.related-party-deletedSe elimina una parte relacionada de un alias.aliasId, holderId, organizationId, relatedPartyId, deletedAt