> ## 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.

# Arquitectura

> Explora la arquitectura de microservicios que permite a Midaz correr en cualquier nube y escalar componentes sin tiempo de inactividad.

<Note>
  **En pocas palabras**: Midaz se ejecuta en cualquier nube sin dependencia de proveedor. Su diseño modular permite escalar cada componente de forma independiente a medida que crece el volumen de transacciones, y desplegar actualizaciones sin tiempo de inactividad. Para una visión general orientada al negocio, consulta [Sobre Midaz](/es/midaz/about-midaz).
</Note>

Midaz está diseñado para una portabilidad e independencia genuinas; puedes desplegarlo en cualquier nube pública o privada sin estar atado a un solo proveedor.

Internamente, utilizamos una **arquitectura de microservicios**, lo que permite que cada componente sea autosuficiente y fácilmente escalable (o reemplazable) a medida que tus requisitos cambian.

## Arquitectura de microservicios

***

El diagrama a continuación (*Figura 1*) muestra cómo encajan las piezas.

<Frame caption="Figura 1. Macro-arquitectura de Midaz">
  <img src="https://mintcdn.com/lerian-49cb71fc/ZrZBZTM4DWnrahSd/images/es/d2/midaz-macro-architecture.svg?fit=max&auto=format&n=ZrZBZTM4DWnrahSd&q=85&s=9e62a381108a1237cf99aebea81615cd" alt="Midaz Macro Architecture Jp" className="mx-auto" style={{ width:"77%" }} width="1707" height="1246" data-path="images/es/d2/midaz-macro-architecture.svg" />
</Frame>

### 1. Capa de Cluster (gestión del cliente)

Esta capa es gestionada por el cliente y proporciona la base de Kubernetes para ejecutar Midaz. Recomendamos habilitar los siguientes servicios para garantizar un despliegue fluido y seguro:

* **Service (Servicio)**: Abstracción de redes para exponer y enrutar servicios.
* **AutoScaler (Autoescalador)**: Ajusta automáticamente el número de *pods*.
* **HPA (Horizontal Pod Autoscaler)**: Escala aplicaciones basándose en métricas.
* **Secrets (Secretos)**: Gestión segura de datos sensibles.
* **ConfigMap**: Gestión de configuración **externalizada**.

Esta capa gobierna y coordina todos los componentes dentro del cluster.

### 2. Capa de *Front-end*

La capa de front-end proporciona la interfaz de usuario para la interacción con el sistema (panel de administración, dashboards, etc.).

<Note>
  **Transición importante**: A partir de las versiones más recientes, Midaz ya no incluye una consola integrada en su repositorio. La interfaz visual ahora es proporcionada por **[Lerian Console](/es/platform/console/about-lerian-console)**, una plataforma unificada que incluye Midaz como uno de sus módulos de producto.

  Si está usando una versión anterior de Midaz, es posible que todavía tenga acceso a la **Midaz Console** independiente. Sin embargo, este componente ahora está en modo de mantenimiento y solo recibirá parches de seguridad críticos. Recomendamos migrar a Lerian Console para acceder a las últimas funcionalidades y mejoras.
</Note>

### 3. Capa de *Back-end*

El back-end se implementa como un **monolito modular**, expuesto como un único servicio llamado **Ledger**, que concentra las principales responsabilidades de Midaz Ledger.

Dentro de esta estructura, la lógica se organiza por dominios, principalmente:

* **Dominio de Organización**: Responsable de la organización, el libro mayor, los activos, la cartera, los segmentos y la configuración de las cuentas.
* **Dominio de Transacciones**: Gestiona las transacciones financieras, las operaciones y los movimientos de activos.

Este enfoque mantiene límites claros entre los dominios, a la vez que simplifica la implementación y la complejidad operativa.

### 4. Capa de Datos

Esta capa incluye las bases de datos y los componentes de infraestructura necesarios para soportar los datos de las aplicaciones y los flujos de eventos:

* **PostgreSQL** (nombrado "Midaz"): Se utiliza como la base de datos relacional principal; incluye una réplica para redundancia o escalado de lectura.
* **Valkey**: Un almacén de clave-valor compatible con Redis para *caching* o recuperación rápida de datos.
* **MongoDB**: Probablemente se utilice para almacenar datos no estructurados o semiestructurados.
* **RabbitMQ**: Agente de mensajes (*Message broker*) para la comunicación asíncrona entre servicios.

Cada uno de estos tiene un **almacenamiento persistente** asociado para la durabilidad de los datos.

### 5. Capa de *Helm Chart*

Midaz utiliza **Helm Charts** (específicamente `lerianstudio/helm`) para hacer que el despliegue y la configuración de la infraestructura sean más sencillos y eficientes.

Sirve como el elemento de conexión entre el código y Kubernetes, asegurando que cada componente se despliegue de manera consistente en diferentes entornos.

<Tip>
    Para más detalles, consulta la página [Desplegar usando Helm](/es/platform/helm/midaz/midaz-installation).
</Tip>

## Infraestructura que funciona

***

En la arquitectura de Midaz, cada capa está enfocada, sin complejidad innecesaria. Escala de forma natural y se adapta a medida que cambian tus necesidades. Esta configuración no solo es técnicamente sólida, sino que está construida para el uso en el mundo real.

* Kubernetes coordina cómo se comunica cada capa, asegurando interacciones seguras y fiables en todo el sistema.
* Helm mantiene los despliegues y las configuraciones sincronizados, por lo que el escalado y las actualizaciones ocurren sin fricciones.

Debido a que la plataforma es modular, extenderla es simple. Puedes añadir nuevos componentes según sea necesario sin interrumpir lo que ya está en su lugar.
