Saltar al contenido principal
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.
Midaz Macro Architecture Jp

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.).
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, 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.

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.
  Para más detalles, consulta la página Desplegar usando Helm.

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.