Saltar al contenido principal

Referencia de configuración del servicio Ledger


El servicio Ledger usa configuraciones de base de datos específicas por módulo:

Soporte para secretos externos

Referencia de flags de despliegue

FlagPor defectoDescripción
ledger.enabledtrueHabilita el servicio Ledger unificado
onboarding.enabledServicio dividido heredado — eliminado de las versiones actuales del chart (solo migración)
transaction.enabledServicio dividido heredado — eliminado de las versiones actuales del chart (solo migración)
migration.allowAllServicesfalseFlag oculto para permitir todos los servicios simultáneamente

Referencia de variables de entorno

Descripciones detalladas para las variables que no son auto-explicativas a partir del bloque YAML anterior.

Pools de conexión a base de datos

VariableDescripciónPredeterminado
DB_ONBOARDING_MAX_OPEN_CONNSMáximo de conexiones abiertas a la base de datos PostgreSQL de Onboarding.Valor por defecto de Go (ilimitado)
DB_ONBOARDING_MAX_IDLE_CONNSMáximo de conexiones inactivas mantenidas vivas para la base de datos de Onboarding.Valor por defecto de Go (2)
DB_TRANSACTION_MAX_OPEN_CONNSMáximo de conexiones abiertas a la base de datos PostgreSQL de Transaction.Valor por defecto de Go (ilimitado)
DB_TRANSACTION_MAX_IDLE_CONNSMáximo de conexiones inactivas mantenidas vivas para la base de datos de Transaction.Valor por defecto de Go (2)
Para cargas de trabajo en producción, establece límites explícitos de pool para prevenir el agotamiento de conexiones. Un punto de partida común: MAX_OPEN_CONNS=25, MAX_IDLE_CONNS=10 por módulo de base de datos. Ajusta según tu configuración max_connections de PostgreSQL y el número de réplicas de Midaz.

RabbitMQ

VariableDescripciónPredeterminado
RABBITMQ_VHOSTVirtual host de RabbitMQ. Útil para aislar el tráfico de Midaz en clústeres de RabbitMQ compartidos./

Registro de auditoría

Cuando está habilitado, Midaz publica registros de auditoría detallados a nivel de operación en un exchange de RabbitMQ después de cada transacción. El payload de auditoría incluye los datos completos de la operación (montos, cuentas, saldos antes/después) serializados como JSON. Consumes estos eventos vinculando tu propia cola al exchange de auditoría.
VariableDescripciónPredeterminado
AUDIT_LOG_ENABLEDHabilita el registro de auditoría de transacciones.false
RABBITMQ_AUDIT_EXCHANGENombre del exchange de RabbitMQ para los mensajes de auditoría.audit.append_log.exchange
RABBITMQ_AUDIT_KEYRouting key para los mensajes de auditoría.audit.append_log.key

Eventos de transacción

VariableDescripciónPredeterminado
RABBITMQ_TRANSACTION_EVENTS_ENABLEDHabilita la publicación de eventos de transacción en tiempo real. Consulta Event publisher para más detalles.false
RABBITMQ_TRANSACTION_EVENTS_EXCHANGENombre del exchange de RabbitMQ para los eventos de transacción.transaction.transaction_events.exchange

Procesamiento asíncrono de transacciones

Cuando RABBITMQ_TRANSACTION_ASYNC está habilitado, Midaz procesa las transacciones de forma asíncrona a través de consumidores RabbitMQ, en lugar de hacerlo de forma inline durante la solicitud a la API. El bulk recorder agrupa adicionalmente las escrituras a la base de datos para mayor rendimiento.
Las variables BULK_RECORDER_* solo tienen efecto cuando ambas RABBITMQ_TRANSACTION_ASYNC=true y BULK_RECORDER_ENABLED=true están activas.
VariableDescripciónPredeterminado
RABBITMQ_TRANSACTION_ASYNCHabilita el procesamiento asíncrono de transacciones mediante consumidores RabbitMQ.false
RABBITMQ_NUMBERS_OF_WORKERSNúmero de goroutines de workers consumidores asíncronos.5
RABBITMQ_NUMBERS_OF_PREFETCHConteo de prefetch de RabbitMQ por worker — controla cuántos mensajes almacena en buffer cada worker a la vez.10
BULK_RECORDER_ENABLEDHabilita el modo de inserción masiva para escrituras de operaciones cuando el procesamiento asíncrono está activo.true
BULK_RECORDER_SIZETamaño del lote para inserciones masivas. Configura en 0 para dimensionamiento automático según la carga.0 (auto)
BULK_RECORDER_FLUSH_TIMEOUT_MSTiempo máximo (en milisegundos) para esperar antes de vaciar un lote incompleto.
BULK_RECORDER_MAX_ROWS_PER_INSERTNúmero máximo de filas por sentencia INSERT durante escrituras masivas.

Paginación

VariableDescripciónPredeterminado
MAX_PAGINATION_MONTH_DATE_RANGERango máximo de fechas (en meses) permitido para las consultas paginadas. Limita qué tan atrás los endpoints de listado pueden consultar. Usa 0 para rango ilimitado.3
MAX_PAGINATION_LIMITNúmero máximo de elementos devueltos por página en las respuestas paginadas de la API.100
El límite del rango de fechas de paginación previene escaneos completos de tabla costosos en conjuntos de datos grandes. Si tu caso de uso requiere consultar datos históricos más allá de 3 meses, aumenta este valor o configúralo en 0 — pero monitorea el rendimiento de las consultas en consecuencia.