> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Arquitetura

> Explore a arquitetura de microsserviços que permite ao Midaz rodar em qualquer nuvem e escalar componentes sem tempo de inatividade.

<Note>
  **Em resumo**: O Midaz roda em qualquer nuvem sem lock-in de fornecedor. Seu design modular permite escalar cada componente de forma independente conforme o volume de transações cresce, e realizar atualizações sem downtime. Para uma visão geral orientada a negócios, veja [Sobre o Midaz](/pt/midaz/about-midaz).
</Note>

O Midaz é projetado para portabilidade e independência genuínas. Você pode fazer o deploy em qualquer nuvem pública ou privada sem ficar preso a um único provedor.

Por baixo, utilizamos uma **arquitetura de microsserviços**, que permite que cada componente seja autossuficiente e facilmente escalável (ou substituível) conforme seus requisitos mudam.

## Arquitetura de microsserviços

***

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

<Frame caption="Figura 1. Macro-arquitetura do Midaz">
  <img src="https://mintcdn.com/lerian-49cb71fc/dIivJl2jpQJ0JZcX/images/pt/d2/midaz-macro-architecture.svg?fit=max&auto=format&n=dIivJl2jpQJ0JZcX&q=85&s=a151aa1da6eab701ffca1a1349135573" alt="" className="mx-auto" style={{ width:"80%" }} width="1717" height="1246" data-path="images/pt/d2/midaz-macro-architecture.svg" />
</Frame>

### 1. Camada de cluster (gerenciamento do cliente)

Esta camada é gerenciada pelo cliente e fornece a base Kubernetes para executar o Midaz. Recomendamos habilitar os seguintes serviços para garantir 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, etc.).

<Note>
  **Transição importante**: A partir de versões mais recentes, o Midaz não inclui mais um console integrado em seu repositório. A interface visual agora é fornecida pelo **[Lerian Console](/pt/platform/console/about-lerian-console)**, uma plataforma unificada que inclui o Midaz como um de seus módulos de produto.

  Se você está usando uma versão mais antiga do Midaz, pode ainda ter acesso ao **Midaz Console** standalone. No entanto, este componente está agora em modo de manutenção e receberá apenas patches críticos de segurança. Recomendamos migrar para o Lerian Console para acessar as funcionalidades e melhorias mais recentes.
</Note>

### 3. Camada de back-end

O back-end é implementado como um **monólito modular**, exposto como um único serviço chamado **Ledger**, que concentra as responsabilidades principais do Midaz Ledger.

Dentro dessa estrutura, a lógica é organizada por domínios, principalmente:

* **Domínio de Onboarding**: Responsável pela configuração de organização, ledger, ativo, portfolio, segmento e conta.
* **Domínio de Transações**: Lida com transações financeiras, operações e movimentações de ativos.

Essa abordagem preserva limites claros entre domínios enquanto simplifica o deploy e a complexidade operacional.

### 4. Camada de dados

Esta camada inclui os bancos de dados e componentes de infraestrutura necessários para suportar dados da aplicação e fluxos de eventos:

* **PostgreSQL** (nomeado "Midaz"): Usado como o banco de dados relacional principal; inclui uma réplica para redundância ou escalabilidade de leitura.
* **Valkey**: Um armazenamento chave-valor compatível com Redis para cache ou recuperação rápida de dados.
* **MongoDB**: Provavelmente usado para armazenar dados não estruturados ou semi-estruturados.
* **RabbitMQ**: Message broker para comunicação assíncrona entre serviços.

Cada um desses possui **armazenamento persistente** associado para durabilidade dos dados.

### 5. Camada de Helm Chart

O Midaz usa **Helm Charts** (especificamente `lerianstudio/helm`) para tornar o deploy e a configuração de infraestrutura mais simples e eficientes.

Serve como o elemento de conexão entre código e Kubernetes, garantindo que cada componente seja implantado de forma consistente em diferentes ambientes.

<Tip>
  Para mais detalhes, consulte a página [Deploy usando Helm](/pt/platform/helm/midaz/midaz-installation).
</Tip>

## Infraestrutura que funciona

***

Na arquitetura do Midaz, cada camada é focada, sem complexidade desnecessária. Ela escala naturalmente e se adapta conforme suas necessidades mudam. Essa configuração não é apenas tecnicamente sólida; ela é construída para uso no mundo real.

* O Kubernetes coordena como cada camada se comunica, garantindo interações seguras e confiáveis em todo o sistema.
* O Helm mantém deploys e configurações sincronizados, para que escalabilidade e atualizações aconteçam sem fricção.

Como a plataforma é modular, estendê-la é simples. Você pode adicionar novos componentes conforme necessário sem interromper o que já está funcionando.
