Catálogo JSON público do ledger
O manifesto público do ledger contém as definições verificadas a seguir. Toda definição catalogada tem um caminho de emissão em produção fora de testes.Envelope do CloudEvents
Todo fato JSON público usa o envelope compartilhado abaixo. Os headers carregam informações de roteamento e schema. O valor do Kafka carrega o objeto JSONdata.
Tópicos, manifesto e roteamento
O tópico da aplicação identifica a aplicação produtora, não um evento individual. Roteie um registro porce-resourcetype e ce-eventtype, e valide ce-schemaversion antes de decodificar seu valor data.
- Fatos:
lerian.streaming.ledger - Rota DLQ:
lerian.streaming.ledger.dlq - Manifesto:
GET /v1/streaming/manifestexpõe o catálogo JSON público e o mapeamento de tópicos, inclusive enquanto a publicação está desabilitada.
Semântica de entrega e falha
A publicação fica desabilitada até queSTREAMING_ENABLED=true e a configuração do broker seja bem-sucedida. Quando habilitado, o Midaz emite depois da mudança de estado de negócio. Ele não usa um outbox transacional.
- Política: toda definição JSON pública é um
factcom entrega direta, tratamento de DLQ poron_routable_failureefallback_on_circuit_open. - Limite real do Midaz: como o Midaz não tem outbox, o fallback de circuito aberto não consegue persistir um evento. Os caminhos de emissão registram em log e engolem os erros de publicação em vez de retorná-los ao comando de negócio.
- Requisito do consumidor: a entrega do broker é pelo menos uma vez para os registros publicados. Torne os handlers idempotentes e faça deduplicação com
(ce-source, ce-id).
Plano legado separado do RabbitMQ
O Midaz também tem exchanges de compatibilidade para notificações selecionadas de overdraft e auditoria. Elas formam um plano legado separado do RabbitMQ e não trazem o catálogo JSON público completo de 54 eventos. Novas integrações devem usar o contrato Kafka desta página.Contratos data completos
Essas declarações no estilo TypeScript espelham o formato do produtor no wire. Cada nome de campo é o seu nome JSON. ? significa que o campo tem omitempty. | null significa que o campo é anulável e o produtor sempre o inclui. Um comentário de tipo de origem preserva o tipo do inventário exatamente. Valores decimais são strings JSON, nunca números de ponto flutuante binários.
Mapeamentos de tipo de origem compartilhados
account.closed
account.closed
studio.lerian.ledger.account.closedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: o encerramento de uma conta. closedAt é o instante do encerramento.Subject: ID da conta (p.ID)account.created
account.created
studio.lerian.ledger.account.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a abertura de uma conta em um ledger.Subject: ID da conta (p.ID)account.deleted
account.deleted
studio.lerian.ledger.account.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de uma conta.Subject: ID da conta (p.ID)account.updated
account.updated
studio.lerian.ledger.account.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Os campos mutáveis de uma conta mudam.Subject: ID da conta (p.ID)asset.created
asset.created
studio.lerian.ledger.asset.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: o registro de um ativo em um ledger.Subject: ID do ativo (p.ID)asset.deleted
asset.deleted
studio.lerian.ledger.asset.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de um ativo.Subject: ID do ativo (p.ID)asset.updated
asset.updated
studio.lerian.ledger.asset.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Os campos mutáveis de um ativo mudam.Subject: ID do ativo (p.ID)balance.changed
balance.changed
studio.lerian.ledger.balance.changedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Uma transação commitada movimenta um saldo (um evento por operação que afeta o saldo). Os valores refletem o estado após a operação.Subject: ID da transação e ID da operação (p.TransactionID + ":" + p.OperationID)balance.config_changed
balance.config_changed
studio.lerian.ledger.balance.config_changedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: As configurações de um saldo mudam, ou o overdraft é habilitado (saldo complementar materializado). changeType diferencia settings_updated de overdraft_enabled.Subject: ID do saldo (p.ID)balance.created
balance.created
studio.lerian.ledger.balance.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a criação de um saldo durante a configuração da conta.Subject: ID do saldo (p.ID)balance.deleted
balance.deleted
studio.lerian.ledger.balance.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de um saldo.Subject: ID do saldo (p.ID)balance.overdraft_cleared
balance.overdraft_cleared
studio.lerian.ledger.balance.overdraft_clearedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: O overdraft é totalmente quitado, um sinal terminal (action = cleared).Subject: ID da transação e ID da operação (p.TransactionID + ":" + p.OperationID)balance.overdraft_drawn
balance.overdraft_drawn
studio.lerian.ledger.balance.overdraft_drawnTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Um débito consome overdraft além dos fundos disponíveis (action = drawn).Subject: ID da transação e ID da operação (p.TransactionID + ":" + p.OperationID)balance.overdraft_repaid
balance.overdraft_repaid
studio.lerian.ledger.balance.overdraft_repaidTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: O uso do overdraft diminui, mas não é totalmente quitado (action = repaid).Subject: ID da transação e ID da operação (p.TransactionID + ":" + p.OperationID)fee_billing_packages.created
fee_billing_packages.created
studio.lerian.ledger.fee_billing_packages.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a criação de um pacote de cobrança.Subject: ID do pacote de cobrança (p.ID)fee_billing_packages.deleted
fee_billing_packages.deleted
studio.lerian.ledger.fee_billing_packages.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de um pacote de cobrança.Subject: ID do pacote de cobrança (p.ID)fee_billing_packages.updated
fee_billing_packages.updated
studio.lerian.ledger.fee_billing_packages.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Os campos mutáveis de um pacote de cobrança mudam.Subject: ID do pacote de cobrança (p.ID)fee_charge.applied
fee_charge.applied
studio.lerian.ledger.fee_charge.appliedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a aplicação de um pacote de tarifas a uma transação commitada.Subject: ID da transação (p.TransactionID)fee_packages.created
fee_packages.created
studio.lerian.ledger.fee_packages.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a criação de um pacote de tarifas.Subject: ID do pacote de tarifas (p.ID)fee_packages.deleted
fee_packages.deleted
studio.lerian.ledger.fee_packages.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de um pacote de tarifas.Subject: ID do pacote de tarifas (p.ID)fee_packages.updated
fee_packages.updated
studio.lerian.ledger.fee_packages.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Os campos mutáveis de um pacote de tarifas mudam.Subject: ID do pacote de tarifas (p.ID)holder.created
holder.created
studio.lerian.ledger.holder.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a criação de um holder.Subject: ID do holder (p.ID)holder.deleted
holder.deleted
studio.lerian.ledger.holder.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de um holder.Subject: ID do holder (p.ID)holder.updated
holder.updated
studio.lerian.ledger.holder.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Os campos mutáveis de um holder mudam.Subject: ID do holder (p.ID)instrument.created
instrument.created
studio.lerian.ledger.instrument.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a criação de um instrumento para um holder e uma conta.Subject: ID do instrumento (p.ID)instrument.deleted
instrument.deleted
studio.lerian.ledger.instrument.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de um instrumento.Subject: ID do instrumento (p.ID)instrument.updated
instrument.updated
studio.lerian.ledger.instrument.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Os campos mutáveis de um instrumento mudam.Subject: ID do instrumento (p.ID)ledger.created
ledger.created
studio.lerian.ledger.ledger.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a criação de um ledger dentro de uma organização.Subject: ID do ledger (p.ID)ledger.deleted
ledger.deleted
studio.lerian.ledger.ledger.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de um ledger.Subject: ID do ledger (p.ID)ledger.updated
ledger.updated
studio.lerian.ledger.ledger.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: O nome ou o status de um ledger muda.Subject: ID do ledger (p.ID)operation_route.created
operation_route.created
studio.lerian.ledger.operation_route.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.1.0Disparado quando: a criação de uma rota de operação.Subject: ID da rota de operação (p.ID)operation_route.deleted
operation_route.deleted
studio.lerian.ledger.operation_route.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.1.0Disparado quando: a exclusão de uma rota de operação.Subject: ID da rota de operação (p.ID)operation_route.updated
operation_route.updated
studio.lerian.ledger.operation_route.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.1.0Disparado quando: Os campos mutáveis de uma rota de operação mudam.Subject: ID da rota de operação (p.ID)organization.created
organization.created
studio.lerian.ledger.organization.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a criação de uma organização.Subject: ID da organização (p.ID)organization.deleted
organization.deleted
studio.lerian.ledger.organization.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de uma organização.Subject: ID da organização (p.ID)organization.updated
organization.updated
studio.lerian.ledger.organization.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Os campos mutáveis de uma organização mudam.Subject: ID da organização (p.ID)portfolio.created
portfolio.created
studio.lerian.ledger.portfolio.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a criação de um portfólio.Subject: ID do portfólio (p.ID)portfolio.deleted
portfolio.deleted
studio.lerian.ledger.portfolio.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de um portfólio.Subject: ID do portfólio (p.ID)portfolio.updated
portfolio.updated
studio.lerian.ledger.portfolio.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Os campos mutáveis de um portfólio mudam.Subject: ID do portfólio (p.ID)segment.created
segment.created
studio.lerian.ledger.segment.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a criação de um segmento.Subject: ID do segmento (p.ID)segment.deleted
segment.deleted
studio.lerian.ledger.segment.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: a exclusão de um segmento.Subject: ID do segmento (p.ID)segment.updated
segment.updated
studio.lerian.ledger.segment.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Os campos mutáveis de um segmento mudam.Subject: ID do segmento (p.ID)transaction.canceled
transaction.canceled
studio.lerian.ledger.transaction.canceledTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Uma transação pendente faz a transição de PENDING para CANCELED.Subject: ID da transação (p.ID)transaction.committed
transaction.committed
studio.lerian.ledger.transaction.committedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Uma transação pendente faz a transição de PENDING para APPROVED.Subject: ID da transação (p.ID)transaction.posted
transaction.posted
studio.lerian.ledger.transaction.postedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: o commit de uma transação recém-criada no armazenamento, com todas as suas operações persistidas (sem transação pai).Subject: ID da transação (p.ID)transaction.reverted
transaction.reverted
studio.lerian.ledger.transaction.revertedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Um fluxo de estorno cria uma transação filha. parentTransactionId a correlaciona com a original.Subject: ID da transação (p.ID)transaction_group.canceled
transaction_group.canceled
studio.lerian.ledger.transaction_group.canceledTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Um grupo cross-ledger pendente é cancelado.Subject: ID do grupo (p.GroupID)transaction_group.committed
transaction_group.committed
studio.lerian.ledger.transaction_group.committedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Um grupo cross-ledger pendente é confirmado.Subject: ID do grupo (p.GroupID)transaction_group.posted
transaction_group.posted
studio.lerian.ledger.transaction_group.postedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Uma transação cross-ledger direta é concluída. parts lista as transações do grupo.Subject: ID do grupo (p.GroupID)transaction_group.reverted
transaction_group.reverted
studio.lerian.ledger.transaction_group.revertedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.0.0Disparado quando: Um grupo cross-ledger é estornado. groupId identifica o novo grupo e revertedGroupId identifica o original.Subject: ID do grupo (p.GroupID)transaction_route.created
transaction_route.created
studio.lerian.ledger.transaction_route.createdTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.1.0Disparado quando: a criação de uma rota de transação.Subject: ID da rota de transação (p.ID)transaction_route.deleted
transaction_route.deleted
studio.lerian.ledger.transaction_route.deletedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.1.0Disparado quando: a exclusão de uma rota de transação.Subject: ID da rota de transação (p.ID)transaction_route.updated
transaction_route.updated
studio.lerian.ledger.transaction_route.updatedTópico: lerian.streaming.ledgerRota DLQ: lerian.streaming.ledger.dlqSchema: 1.1.0Disparado quando: Os campos mutáveis de uma rota de transação mudam.Subject: ID da rota de transação (p.ID)
