Figura 1. O Midaz e seus domínios interconectados e estrutura modular.
Componentes principais
Midaz
O Midaz está no centro. Ele coordena tudo, da persistência de dados à lógica de negócio.Camada de dados
Todos os dados fluem para a camada de dados persistente. Essa camada dá ao sistema durabilidade, consistência e performance.Domínios e relacionamentos
Organizações
Cada organização é um ambiente distinto no Midaz. Ela pode conter um ou vários ledgers, com base em como você estrutura os seus dados.Ledgers
Um ledger contém toda a atividade financeira. Ele rastreia saldos, armazena ativos e viabiliza transações. Todo ledger pertence a uma organização. A partir daqui, o sistema se ramifica em:- Ativos: definem o tipo de valor que você rastreia.
- Portfólios: agrupam contas relacionadas sob um propósito compartilhado.
Ativos
Os Ativos definem as unidades de valor, como BRL, USD, pontos ou tokens. Cada conta usa um ativo específico.Portfólios
Os Portfólios agrupam contas por lógica de negócio. Você pode criar quantos portfólios precisar para organizar a sua estrutura financeira. Cada portfólio contém uma ou mais contas.Contas e Segmentos
Uma conta pertence a um portfólio e representa um saldo individual. Os Segmentos agrupam contas, para que você possa isolar dados por cliente, produto, região ou qualquer outra dimensão. Os Tipos de Conta classificam contas por natureza e propósito. Eles viabilizam o roteamento de transações e a validação operacional entre categorias de conta.Saldo
Um Saldo representa o valor líquido que uma Conta mantém de um determinado Ativo em um Ledger específico.- Uma conta pode manter vários saldos. Cada um tem uma
balanceKey(por exemplo,default,collateral,operational) para particionar fundos sem dividir a conta. - Uma conta externa tem apenas um saldo (
default). - Se você omitir
balanceKeyem uma transação, o Midaz usa o saldo padrão. - O Midaz deriva saldos automaticamente a partir das operações do ledger. Você pode listá-los, buscá-los ou (em cenários de administração ou teste) ajustá-los manualmente.
- A chave de cache do Valkey inclui
balanceKeyno seu formato:balance:{transactions}:<orgId>:<ledgerId>:<alias>#<balanceKey>.
Transações
Uma transação move valor entre contas. Cada transação contém operações (débitos e créditos). Isso mantém a sua lógica consistente, rastreável e alinhada com o seu modelo de negócio e as suas políticas contábeis.Entidades de Rotas Contábeis
As entidades de Rotas Contábeis estendem o Midaz. Elas criam um sistema estruturado que garante anotações corretas e direções corretas de fluxo financeiro. Ele tem duas partes:- Rotas de Operação: definem comportamentos atômicos de transação. Cada rota define como o Midaz anota e direciona um movimento financeiro, com base nas suas regras de negócio e padrões contábeis.
- Rotas Contábeis: orquestram várias Rotas de Operação em eventos financeiros balanceados. Quando a validação de rota está habilitada nas configurações do ledger, elas impõem a estrutura de transação configurada. (A API chama isso de
transactionRoute.)

