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
| Flag | Por defecto | Descripción |
|---|
| ledger.enabled | true | Habilita el servicio Ledger unificado |
| onboarding.enabled | — | Servicio dividido heredado — eliminado de las versiones actuales del chart (solo migración) |
| transaction.enabled | — | Servicio dividido heredado — eliminado de las versiones actuales del chart (solo migración) |
| migration.allowAllServices | false | Flag 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
| Variable | Descripción | Predeterminado |
|---|
DB_ONBOARDING_MAX_OPEN_CONNS | Máximo de conexiones abiertas a la base de datos PostgreSQL de Onboarding. | Valor por defecto de Go (ilimitado) |
DB_ONBOARDING_MAX_IDLE_CONNS | Máximo de conexiones inactivas mantenidas vivas para la base de datos de Onboarding. | Valor por defecto de Go (2) |
DB_TRANSACTION_MAX_OPEN_CONNS | Máximo de conexiones abiertas a la base de datos PostgreSQL de Transaction. | Valor por defecto de Go (ilimitado) |
DB_TRANSACTION_MAX_IDLE_CONNS | Má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
| Variable | Descripción | Predeterminado |
|---|
RABBITMQ_VHOST | Virtual 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.
| Variable | Descripción | Predeterminado |
|---|
AUDIT_LOG_ENABLED | Habilita el registro de auditoría de transacciones. | false |
RABBITMQ_AUDIT_EXCHANGE | Nombre del exchange de RabbitMQ para los mensajes de auditoría. | audit.append_log.exchange |
RABBITMQ_AUDIT_KEY | Routing key para los mensajes de auditoría. | audit.append_log.key |
Eventos de transacción
| Variable | Descripción | Predeterminado |
|---|
RABBITMQ_TRANSACTION_EVENTS_ENABLED | Habilita la publicación de eventos de transacción en tiempo real. Consulta Event publisher para más detalles. | false |
RABBITMQ_TRANSACTION_EVENTS_EXCHANGE | Nombre 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.
| Variable | Descripción | Predeterminado |
|---|
RABBITMQ_TRANSACTION_ASYNC | Habilita el procesamiento asíncrono de transacciones mediante consumidores RabbitMQ. | false |
RABBITMQ_NUMBERS_OF_WORKERS | Número de goroutines de workers consumidores asíncronos. | 5 |
RABBITMQ_NUMBERS_OF_PREFETCH | Conteo de prefetch de RabbitMQ por worker — controla cuántos mensajes almacena en buffer cada worker a la vez. | 10 |
BULK_RECORDER_ENABLED | Habilita el modo de inserción masiva para escrituras de operaciones cuando el procesamiento asíncrono está activo. | true |
BULK_RECORDER_SIZE | Tamaño del lote para inserciones masivas. Configura en 0 para dimensionamiento automático según la carga. | 0 (auto) |
BULK_RECORDER_FLUSH_TIMEOUT_MS | Tiempo máximo (en milisegundos) para esperar antes de vaciar un lote incompleto. | — |
BULK_RECORDER_MAX_ROWS_PER_INSERT | Número máximo de filas por sentencia INSERT durante escrituras masivas. | — |
Paginación
| Variable | Descripción | Predeterminado |
|---|
MAX_PAGINATION_MONTH_DATE_RANGE | Rango 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_LIMIT | Nú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.