Skip to main content
Em resumo: O Midaz executa o serviço Ledger modular e um serviço Tracer separado. Faça o deploy e escale cada serviço e sua infraestrutura de suporte conforme o ambiente. Para uma visão geral orientada a negócios, veja Sobre o Midaz.
O Midaz pode rodar em ambientes de nuvem pública ou privada. Selecione e opere a infraestrutura adequada aos requisitos do seu deployment. Por baixo, o Midaz usa uma arquitetura modular. O Ledger é organizado por limites de domínio, com infraestrutura de suporte para armazenamento, cache, mensageria e streaming; o Tracer é executado como um serviço separado.

Arquitetura modular


O diagrama abaixo (Figura 1) mostra como as peças se encaixam.

Figura 1. Macro-arquitetura do Midaz

1. Camada de cluster (gerenciamento do cliente)

O cliente gerencia esta camada. Ela fornece a base Kubernetes que executa o Midaz. Habilite estes serviços para um deploy tranquilo e seguro:
  • Service: Abstração de rede para expor e rotear serviços.
  • AutoScaler: Ajusta automaticamente o número de pods.
  • HPA (Horizontal Pod Autoscaler): Escala aplicações baseado em métricas.
  • Secrets: Gerenciamento seguro de dados sensíveis.
  • ConfigMap: Gerenciamento de configuração externalizada.
Esta camada governa e coordena todos os componentes dentro do cluster.

2. Camada de front-end

A camada de front-end fornece a interface de usuário para interação com o sistema (painel administrativo, dashboards, e mais).
Transição importante: as versões mais recentes do Midaz não incluem mais um console integrado no repositório. O Lerian Console agora fornece a interface visual. É uma plataforma unificada que inclui o Midaz como um módulo de produto.Se você usa uma versão mais antiga do Midaz, ainda pode ter o Midaz Console standalone. Este componente está agora em modo de manutenção. Ele recebe apenas patches críticos de segurança. Migre para o Lerian Console para obter as funcionalidades e melhorias mais recentes.

3. Camada de back-end

O back-end do Ledger é um monólito modular que concentra as responsabilidades principais do ledger do Midaz. O Midaz também executa o Tracer como um serviço separado. O Ledger reúne quatro componentes principais:
  • Domínio de Onboarding: gerencia organizações, ledgers, ativos, portfolios, segmentos e contas.
  • Domínio de Transações: lida com transações financeiras, operações e movimentações de ativos.
  • CRM: está integrado ao processo do Ledger.
  • Fees: está integrado ao processo do Ledger.
Essa abordagem mantém limites claros entre domínios. Também simplifica o deploy e reduz a complexidade operacional.

4. Camada de dados

Esta camada contém os bancos de dados e componentes de infraestrutura que dão suporte aos dados da aplicação e aos fluxos de eventos:
  • PostgreSQL: bancos de dados separados onboarding e transaction, cada um configurado com conexões primárias e de réplica.
  • Valkey: Um armazenamento chave-valor compatível com Redis para cache ou recuperação rápida de dados.
  • MongoDB: Armazena dados não estruturados e semiestruturados, como metadados de entidades.
  • RabbitMQ: Message broker para comunicação assíncrona entre serviços.
  • Redpanda: broker compatível com Kafka para os fluxos de eventos do Ledger. O Ledger publica eventos configurados nele somente quando STREAMING_ENABLED=true e há brokers de streaming configurados.
A persistência depende da implantação. A configuração Compose incluída não monta um volume de dados para o Redpanda; em produção, configure armazenamento persistente e retenção para o Redpanda.

5. Camada de Helm Chart

O Midaz usa Helm Charts (especificamente lerianstudio/helm) para fazer o deploy e configurar a infraestrutura. O chart conecta o código ao Kubernetes. Ele faz o deploy de cada componente da mesma forma em todos os ambientes.
Para mais detalhes, consulte a página Deploy usando Helm.

Como as camadas trabalham juntas


Cada camada tem um papel específico, sem complexidade desnecessária. O sistema escala e se adapta conforme suas necessidades mudam.
  • O Kubernetes coordena como as camadas se comunicam, para interações seguras e confiáveis em todo o sistema.
  • O Helm mantém deploys e configurações sincronizados, para que a escalabilidade e as atualizações permaneçam simples.
Como a plataforma é modular, estendê-la é simples. Você pode adicionar novos componentes conforme necessário sem interromper o que já está em funcionamento.