Saltar al contenido principal
Midaz está construido para la escalabilidad, permitiendo a los bancos expandirse a millones de cuentas y transacciones. Sin embargo, la forma en que configura y utiliza Midaz afecta significativamente el rendimiento y la eficiencia. Al estructurar cuidadosamente su implementación—utilizando libros contables, segmentando cargas de trabajo e implementando microservicios—puede manejar efectivamente operaciones bancarias extensas.

Estructuración de entidades para altos volúmenes de transacciones


Particionamiento por Organizaciones, Libros Contables y Cuentas

Si su banco procesa millones de transacciones diariamente, considere distribuir las cargas de trabajo entre múltiples cuentas, libros contables o incluso organizaciones. Por ejemplo, podría segmentar clientes por iniciales de apellido o asignar libros contables separados por región. Cada libro contable en Midaz funciona como un libro independiente—las transacciones dentro de un libro contable se procesan juntas. Distribuir la carga de esta manera evita que un solo libro contable se convierta en un cuello de botella. La arquitectura de Midaz admite escalamiento horizontal, permitiendo que diferentes libros contables operen en instancias separadas o particiones de base de datos.

Operaciones orientadas a bloqueos

Para prevenir conflictos, las transacciones concurrentes se bloquean a nivel de cuenta dentro de cada libro contable. Esto sigue una estrategia FIFO (primero en entrar, primero en salir) y evita condiciones de carrera. La cuenta @external no usa bloqueos, permitiendo operaciones simultáneas — pero cada una debe seguir las reglas de atomicidad (todo o nada).

Escalamiento horizontal de servicios

Midaz está construido sobre una arquitectura de microservicios, lo que significa que diferentes componentes—como el procesamiento de transacciones y las consultas—pueden escalarse independientemente. Comience pequeño, pero a medida que aumenta la demanda, escale servicios específicos en consecuencia. Para cargas altas, implemente múltiples instancias del servicio de procesamiento de transacciones detrás de un balanceador de carga y aproveche el escalamiento de pods de Kubernetes (K8s).

CQRS y réplicas de lectura

Midaz emplea CQRS (Segregación de Responsabilidad de Comando y Consulta) para separar operaciones de escritura y lectura, permitiendo que cada una se optimice individualmente. Use esto ventajosamente: las cargas pesadas de informes y consultas deben ir a réplicas de lectura, manteniendo las confirmaciones de transacciones ligeras y eficientes. Las lecturas no ralentizan las escrituras, y viceversa, asegurando alto rendimiento.

Procesamiento por lotes y transacciones N:N

Cuando sea posible, agrupe múltiples operaciones relacionadas en una sola transacción para reducir la sobrecarga de procesamiento. Use transacciones N:N para operaciones masivas como pagos masivos. Por ejemplo, manejar 100 débitos y 100 créditos en un lote es a menudo más eficiente que procesar 100 transacciones individuales—siempre que pertenezcan al mismo conjunto de operaciones lógicas. Midaz está diseñado para manejar tales transacciones complejas a escala.

Monitoreo y escalamiento iterativo

Monitoree métricas clave: latencia de transacciones, rendimiento, uso de recursos (CPU/memoria) y rendimiento de base de datos. Use las herramientas de observabilidad integradas de Midaz (OpenTelemetry + Grafana) o integre con su monitoreo de infraestructura. Escale horizontalmente (o verticalmente) proactivamente cuando se acerque a umbrales de rendimiento. Dado que Midaz es modular y de código abierto, tiene la flexibilidad de implementar según sea necesario.

Manejo de operaciones multidivisa y multientidad


Estrategias multidivisa

Midaz admite transacciones multidivisa manteniendo cuentas de activos separadas por moneda. Para optimizar el escalamiento:
  • Asegúrese de que todos los activos de moneda requeridos estén configurados.
  • Tenga en cuenta la lógica específica de la moneda (por ejemplo, redondeo, tasas de conversión) en su capa de integración.
  • Si la conversión de moneda es frecuente (por ejemplo, comercio de divisas), gestiónela en un módulo o servicio separado—potencialmente usando nuestro plugin de Motor de Intercambio. Midaz manejará débitos/créditos, pero puede ser necesario un servicio de tasas FX externo.
  • Los libros contables separados por moneda generalmente son innecesarios a menos que la política lo dicte. En su lugar, use los tipos de cuenta y las API de enrutamiento de transacciones para categorizar cuentas por moneda para mayor claridad en los informes.
  • Si se usa una sola moneda (por ejemplo, moneda local) en la gran mayoría de las transacciones, es mejor mantener todas las monedas dentro del mismo libro contable. Sin embargo, si gestionar operaciones en múltiples monedas se vuelve demasiado complejo, considere dividir en libros contables separados por grupo de monedas.

Múltiples Entidades: Consolidación y separación

Para bancos que operan en múltiples países o entidades legales:
  • Use la jerarquía de organización para segmentar entidades, con cada una teniendo su propia moneda base, activos locales y libros contables.
  • Las transacciones entre entidades se tratan como movimientos externos—una organización acredita su cuenta externa mientras otra debita la propia.
  • Ejecutar múltiples organizaciones en la misma instancia de Midaz es factible, pero asegúrese de asignar recursos suficientes. Los microservicios procesan todas las solicitudes colectivamente, por lo que el volumen general importa.
  • Implementar instancias separadas de Midaz para entidades aisladas es posible, pero limita la visibilidad unificada. Típicamente, un solo clúster de Midaz con separación interna de organización es más práctico.

Mejores prácticas de optimización de rendimiento


Indexación y consultas

Use las API de Midaz para la recuperación de datos en lugar de consultas directas a la base de datos. Las API están diseñadas para la eficiencia con indexación integrada, permitiendo operaciones como recuperar todas las transacciones de una cuenta o listar todas las cuentas en un portafolio.

Pruebas a escala

Antes de la implementación completa, simule tráfico alto usando herramientas de prueba de carga. Cree millones de cuentas, ejecute volúmenes pesados de transacciones y monitoree el rendimiento. La arquitectura de Midaz (microservicios, CQRS) está construida para operaciones a gran escala, pero las pruebas en el mundo real ayudan a afinar su implementación. Busque escalabilidad lineal—escalar servidores de aplicaciones debería aumentar proporcionalmente el rendimiento.
I