Skip to main content
En pocas palabras: Midaz ejecuta el servicio Ledger modular y un servicio Tracer independiente. Despliega y escala cada servicio y su infraestructura de soporte según tu entorno. Para una visión general orientada al negocio, consulta Sobre Midaz.
Midaz puede ejecutarse en entornos de nube pública o privada. Selecciona y opera la infraestructura que se ajuste a tus requisitos de despliegue. Por dentro, Midaz usa una arquitectura modular. Ledger se organiza por límites de dominio, con infraestructura de soporte para almacenamiento, caché, mensajería y streaming; Tracer se ejecuta como un servicio independiente.

Arquitectura modular


El diagrama a continuación (Figura 1) muestra cómo encajan las piezas.
Diagrama de la macroarquitectura de Midaz

Figura 1. Macro-arquitectura de Midaz

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

El cliente gestiona esta capa. Proporciona la base de Kubernetes que ejecuta Midaz. Habilita estos servicios para 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, y más).
Transición importante: las versiones más recientes de Midaz ya no incluyen una consola integrada en el repositorio. Lerian Console ahora proporciona la interfaz visual. Es una plataforma unificada que incluye Midaz como un módulo de producto.Si usas una versión anterior de Midaz, puede que aún tengas la Midaz Console independiente. Este componente ahora está en modo de mantenimiento. Solo recibe parches de seguridad críticos. Migra a Lerian Console para obtener las últimas funcionalidades y mejoras.

3. Capa de Back-end

El back-end de Ledger es un monolito modular que concentra las responsabilidades principales del ledger de Midaz. Midaz también ejecuta Tracer como un servicio independiente. Ledger reúne cuatro componentes principales:
  • Dominio de Onboarding: gestiona organizaciones, ledgers, activos, portfolios, segmentos y cuentas.
  • Dominio de Transacciones: maneja las transacciones financieras, las operaciones y los movimientos de activos.
  • CRM: está integrado en el proceso de Ledger.
  • Fees: está integrado en el proceso de Ledger.
Este enfoque mantiene límites claros entre dominios. También simplifica el despliegue y reduce la complejidad operativa.

4. Capa de Datos

Esta capa contiene las bases de datos y los componentes de infraestructura que dan soporte a los datos de las aplicaciones y a los flujos de eventos:
  • PostgreSQL: bases de datos separadas onboarding y transaction, cada una configurada con conexiones primarias y de réplica.
  • Valkey: Un almacén de clave-valor compatible con Redis para caching o recuperación rápida de datos.
  • MongoDB: Almacena datos no estructurados y semiestructurados, como metadatos de entidades.
  • RabbitMQ: Agente de mensajes (Message broker) para la comunicación asíncrona entre servicios.
  • Redpanda: broker compatible con Kafka para los flujos de eventos de Ledger. Ledger publica eventos configurados en él solo cuando STREAMING_ENABLED=true y hay brokers de streaming configurados.
La persistencia depende del despliegue. La configuración Compose incluida no monta un volumen de datos para Redpanda; configura el almacenamiento y la retención de producción para cada servicio.

5. Capa de Helm Chart

Midaz usa Helm Charts (específicamente lerianstudio/helm) para desplegar y configurar la infraestructura. El chart conecta el código con Kubernetes. Despliega cada componente de la misma manera en todos los entornos.
Para más detalles, consulta la página Desplegar usando Helm.

Cómo trabajan juntas las capas


Cada capa tiene un rol específico, sin complejidad innecesaria. El sistema escala y se adapta a medida que cambian tus necesidades.
  • Kubernetes coordina cómo se comunican las capas, para interacciones seguras y fiables en todo el sistema.
  • Helm mantiene sincronizados los despliegues y las configuraciones, de modo que el escalado y las actualizaciones se mantienen sencillos.
Como la plataforma es modular, extenderla es sencillo. Puedes añadir nuevos componentes según sea necesario sin interrumpir lo que ya está en funcionamiento.