lib-streaming. Todo evento viaja no envelope compartilhado: ce-type nomeia o evento como studio.lerian.<resource>.<event>, ce-subject carrega o id do agregado, ce-tenantid o tenant proprietário (ausente no escopo de tenant único) e ce-schemaversion a versão do payload — 1.0.0 para todos os eventos abaixo.
ce-source é configurado no deployment pela variável de ambiente STREAMING_CLOUDEVENTS_SOURCE. O ledger usa por padrão lerian.midaz.ledger e a capacidade de CRM lerian.midaz.crm. Os valores monetários — saldos, valores de transações e operações — trafegam no fio como strings decimais, nunca floats.
Eventos do ledger
Fatos que o ledger emite à medida que organizações, contas, saldos e transações mudam.Organização
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.organization.created | lerian.streaming.organization.created | Uma organização é criada. | id, legalName, doingBusinessAs, legalDocument, address, status, createdAt |
studio.lerian.organization.updated | lerian.streaming.organization.updated | Os campos mutáveis de uma organização mudam. | id, parentOrganizationId, legalName, doingBusinessAs, address, status, updatedAt |
studio.lerian.organization.deleted | lerian.streaming.organization.deleted | Uma organização é excluída. | id, deletedAt |
Ledger
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.ledger.created | lerian.streaming.ledger.created | Um ledger é criado dentro de uma organização. | id, organizationId, name, status, createdAt |
studio.lerian.ledger.updated | lerian.streaming.ledger.updated | O nome ou o status de um ledger muda. | id, organizationId, name, status, updatedAt |
studio.lerian.ledger.deleted | lerian.streaming.ledger.deleted | Um ledger é excluído. | id, organizationId, deletedAt |
Conta
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.account.created | lerian.streaming.account.created | Uma conta é aberta em um ledger. | id, organizationId, ledgerId, name, assetCode, type, alias, portfolioId, segmentId, status, createdAt |
studio.lerian.account.updated | lerian.streaming.account.updated | Os campos mutáveis de uma conta mudam. | id, organizationId, ledgerId, name, segmentId, entityId, status, blocked, updatedAt |
studio.lerian.account.deleted | lerian.streaming.account.deleted | Uma conta é excluída. | id, organizationId, ledgerId, portfolioId, deletedAt |
Ativo
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.asset.created | lerian.streaming.asset.created | Um ativo é registrado em um ledger. | id, organizationId, ledgerId, name, type, code, status, createdAt |
studio.lerian.asset.updated | lerian.streaming.asset.updated | Os campos mutáveis de um ativo mudam. | id, organizationId, ledgerId, name, type, code, status, updatedAt |
studio.lerian.asset.deleted | lerian.streaming.asset.deleted | Um ativo é excluído. | id, organizationId, ledgerId, deletedAt |
Portfólio
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.portfolio.created | lerian.streaming.portfolio.created | Um portfólio é criado. | id, organizationId, ledgerId, name, entityId, status, createdAt |
studio.lerian.portfolio.updated | lerian.streaming.portfolio.updated | Os campos mutáveis de um portfólio mudam. | id, organizationId, ledgerId, name, entityId, status, updatedAt |
studio.lerian.portfolio.deleted | lerian.streaming.portfolio.deleted | Um portfólio é excluído. | id, organizationId, ledgerId, deletedAt |
Segmento
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.segment.created | lerian.streaming.segment.created | Um segmento é criado. | id, organizationId, ledgerId, name, status, createdAt |
studio.lerian.segment.updated | lerian.streaming.segment.updated | Os campos mutáveis de um segmento mudam. | id, organizationId, ledgerId, name, status, updatedAt |
studio.lerian.segment.deleted | lerian.streaming.segment.deleted | Um segmento é excluído. | id, organizationId, ledgerId, deletedAt |
Rota de operação
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.operation-route.created | lerian.streaming.operation-route.created | Uma rota de operação é criada. | id, organizationId, ledgerId, title, code, operationType, account, accountingEntries, createdAt |
studio.lerian.operation-route.updated | lerian.streaming.operation-route.updated | Os campos mutáveis de uma rota de operação mudam. | id, organizationId, ledgerId, title, code, operationType, account, accountingEntries, updatedAt |
studio.lerian.operation-route.deleted | lerian.streaming.operation-route.deleted | Uma rota de operação é excluída. | id, organizationId, ledgerId, deletedAt |
Rota de transação
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.transaction-route.created | lerian.streaming.transaction-route.created | Uma rota de transação é criada. | id, organizationId, ledgerId, title, operationRouteIds, createdAt |
studio.lerian.transaction-route.updated | lerian.streaming.transaction-route.updated | Os campos mutáveis de uma rota de transação mudam. | id, organizationId, ledgerId, title, operationRouteIds, updatedAt |
studio.lerian.transaction-route.deleted | lerian.streaming.transaction-route.deleted | Uma rota de transação é excluída. | id, organizationId, ledgerId, deletedAt |
Saldo
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.balance.created | lerian.streaming.balance.created | Um saldo é criado durante a configuração da conta. | id, organizationId, ledgerId, accountId, alias, key, assetCode, accountType, available, onHold, allowSending, allowReceiving, createdAt |
studio.lerian.balance.changed | lerian.streaming.balance.changed | Uma transação confirmada move um saldo — um evento por operação que afeta o saldo; os valores refletem o estado após a operação. | organizationId, ledgerId, accountId, balanceId, assetCode, available, onHold, version, reason, direction, amount, transactionId, operationId, occurredAt |
studio.lerian.balance.config-changed | lerian.streaming.balance.config-changed | As configurações de um saldo mudam, ou o cheque especial é habilitado (o saldo acompanhante é materializado). 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 | Um saldo é excluído. | id, organizationId, ledgerId, accountId, deletedAt |
studio.lerian.balance.overdraft-drawn | lerian.streaming.balance.overdraft-drawn | Um débito consome cheque especial além dos fundos disponíveis (action = drawn). | balanceId, accountId, organizationId, ledgerId, assetCode, transactionId, operationId, action, amount, overdraftBalance, overdraftLimit, occurredAt |
studio.lerian.balance.overdraft-repaid | lerian.streaming.balance.overdraft-repaid | O uso do cheque especial diminui, mas não é totalmente quitado (action = repaid). | balanceId, accountId, organizationId, ledgerId, assetCode, transactionId, operationId, action, amount, overdraftBalance, overdraftLimit, occurredAt |
studio.lerian.balance.overdraft-cleared | lerian.streaming.balance.overdraft-cleared | O cheque especial é totalmente quitado — sinal terminal (action = cleared). | balanceId, accountId, organizationId, ledgerId, assetCode, transactionId, operationId, action, amount, overdraftBalance, overdraftLimit, occurredAt |
Transação
Os quatro eventos do ciclo de vida compartilham um mesmo payload; apenas o tipo de roteamento muda.Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.transaction.posted | lerian.streaming.transaction.posted | Uma transação recém-criada é confirmada no armazenamento com todas as suas operações persistidas (sem pai). | id, organizationId, ledgerId, status, amount, assetCode, source, destination, route, operations, metadata, createdAt |
studio.lerian.transaction.committed | lerian.streaming.transaction.committed | Uma transação pendente passa de PENDING para APPROVED. | id, organizationId, ledgerId, status, amount, assetCode, source, destination, operations, metadata |
studio.lerian.transaction.canceled | lerian.streaming.transaction.canceled | Uma transação pendente passa de PENDING para CANCELED. | id, organizationId, ledgerId, status, amount, assetCode, source, destination, operations, metadata |
studio.lerian.transaction.reverted | lerian.streaming.transaction.reverted | Um fluxo de reversão cria uma transação filha; parentTransactionId a correlaciona com a original. | id, parentTransactionId, organizationId, ledgerId, status, amount, assetCode, source, destination, operations, metadata |
Eventos do CRM
A capacidade de CRM do Midaz gerencia os titulares de contas e seus aliases. Esses eventos são emitidos no source do CRM (lerian.midaz.crm por padrão), separado do ledger, mas seguem o mesmo envelope e versionamento.
Titular
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.holder.created | lerian.streaming.holder.created | Um titular é criado. | id, organizationId, type, externalId, createdAt |
studio.lerian.holder.updated | lerian.streaming.holder.updated | Os campos mutáveis de um titular mudam. | id, organizationId, type, externalId, updatedAt |
studio.lerian.holder.deleted | lerian.streaming.holder.deleted | Um titular é excluído. | id, organizationId, deletionType, deletedAt |
Alias
Evento (ce-type) | Tópico | Quando dispara | Payload principal |
|---|---|---|---|
studio.lerian.alias.created | lerian.streaming.alias.created | Um alias é criado para um titular e uma conta. | id, holderId, organizationId, ledgerId, accountId, type, relatedParties, createdAt |
studio.lerian.alias.updated | lerian.streaming.alias.updated | Os campos mutáveis de um alias mudam. | id, holderId, organizationId, ledgerId, accountId, type, relatedParties, updatedAt |
studio.lerian.alias.deleted | lerian.streaming.alias.deleted | Um alias é excluído. | id, holderId, organizationId, deletionType, deletedAt |
studio.lerian.alias.related-party-deleted | lerian.streaming.alias.related-party-deleted | Uma parte relacionada é removida de um alias. | aliasId, holderId, organizationId, relatedPartyId, deletedAt |

