> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuración y despliegue

> Cómo se empaqueta y ejecuta Lender — la forma del contenedor, sus dependencias, una superficie curada de variables de entorno, los modos multi-tenant y la ruta de posting al ledger.

export const GLedger = ({children}) => <Tooltip headline="Ledger" tip="El libro financiero central que registra todas las transacciones, saldos y operaciones de una organización — la fuente única de verdad para las finanzas de una unidad de negocio." cta="Ver glosario" href="/es/glossary">
    {children}
  </Tooltip>;

export const GKubernetes = ({children}) => <Tooltip headline="Kubernetes" tip="Plataforma de código abierto para automatizar el despliegue, escalado y gestión de aplicaciones en contenedores. Los productos Lerian se despliegan en clústeres Kubernetes en el modelo BYOC." cta="Ver glosario" href="/es/glossary">
    {children}
  </Tooltip>;

Lender es un único servicio Go, empaquetado como contenedor y configurado por completo mediante variables de entorno. Esta página es la referencia del operador: qué se ejecuta, de qué depende, los ajustes que importan y cómo se comportan la tenancy y el enrutamiento al ledger.

## El contenedor

***

Lender se construye desde un Dockerfile multi-etapa — un builder Go Alpine que produce un binario estático, copiado a un runtime distroless nonroot — y escucha en el puerto `8080`. Se entrega como una imagen de contenedor que despliegas en tu clúster de <GKubernetes>Kubernetes</GKubernetes> con el [tooling de ciclo de vida](/es/platform/lifecycle-management) estándar de la plataforma; esta página no asume ningún empaquetado particular más allá de la imagen.

Sondas operativas:

| Endpoint       | Propósito                     |
| -------------- | ----------------------------- |
| `GET /health`  | Liveness.                     |
| `GET /readyz`  | Readiness de dependencias.    |
| `GET /version` | Metadatos de build y versión. |

## Dependencias

***

| Dependencia                         | Rol                                                                                                                                                                                                                                                                                  |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **PostgreSQL 17**                   | Almacén de datos primario, con soporte primario/réplica y aislamiento schema-por-tenant en modo multi-tenant.                                                                                                                                                                        |
| **Valkey 8** (compatible con Redis) | Caché, rate limiting y la caché de credenciales M2M.                                                                                                                                                                                                                                 |
| **RabbitMQ**                        | Transporte del publicador de eventos, impulsado por un dispatcher de **outbox** transaccional.                                                                                                                                                                                       |
| **RedPanda**                        | Backbone de streaming para el catálogo de eventos del ciclo de vida (vía la librería de streaming de Lerian).                                                                                                                                                                        |
| **Midaz**                           | El <GLedger>ledger</GLedger> de partida doble, alcanzado a través del SDK oficial. Lender se autentica vía [Access Manager](/es/platform/access-manager/access-manager) con credenciales máquina-a-máquina (M2M) por tenant, obtenidas de AWS Secrets Manager y cacheadas en Valkey. |
| **Casdoor**                         | Proveedor de identidad que respalda la autorización de rutas (vía la librería de auth de Lerian).                                                                                                                                                                                    |
| **Systemplane**                     | Plano de configuración en tiempo de ejecución, montado bajo `/api/v1/systemplane`.                                                                                                                                                                                                   |

## Superficie de configuración

***

La configuración es enteramente por entorno. Las claves de abajo son un subconjunto curado — las que moldean el comportamiento — no la lista completa.

| Grupo          | Clave                                                                                                                          | Qué controla                                                                      |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- |
| App            | `ENV_NAME`, `LOG_LEVEL`, `DEPLOYMENT_MODE`, `SERVER_ADDRESS`                                                                   | Nombre de entorno, verbosidad de logs, modo de despliegue y dirección de escucha. |
| Tenancy        | `MULTI_TENANT_ENABLED`, `DEFAULT_TENANT_ID`                                                                                    | Alternar entre modos single- y multi-tenant, y el tenant usado en single-tenant.  |
| Tenancy (MT)   | `MULTI_TENANT_MAX_TENANT_POOLS`, `MULTI_TENANT_CIRCUIT_BREAKER_THRESHOLD`                                                      | Techo de pools de conexión por tenant y punto de disparo del circuit breaker.     |
| Postgres       | `POSTGRES_HOST`, `POSTGRES_PORT`, `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_NAME`, `POSTGRES_SSLMODE`, `MIGRATIONS_PATH` | Conexión a la base primaria y migraciones.                                        |
| Caché          | `REDIS_HOST`, `REDIS_PASSWORD`, `M2M_CREDENTIAL_CACHE_TTL_SEC`                                                                 | Conexión a Valkey y cuánto se cachean las credenciales M2M.                       |
| Mensajería     | `RABBITMQ_ENABLED`, `RABBITMQ_HOST`, `OUTBOX_ENABLED`, `OUTBOX_DISPATCH_INTERVAL_SEC`                                          | Transporte RabbitMQ y la cadencia del dispatcher del outbox.                      |
| Streaming      | `STREAMING_ENABLED`, `STREAMING_BROKERS`, `STREAMING_TLS_ENABLED`                                                              | Toggle de streaming de eventos, direcciones de brokers y TLS.                     |
| Auth           | `PLUGIN_AUTH_ENABLED`                                                                                                          | Habilita la autorización de rutas contra el proveedor de identidad.               |
| Ledger M2M     | `AWS_REGION`                                                                                                                   | Región del Secrets Manager que guarda las credenciales de Midaz por tenant.       |
| Observabilidad | `ENABLE_TELEMETRY`, `OTEL_EXPORTER_OTLP_ENDPOINT`                                                                              | Toggle de telemetría y endpoint del colector OTLP.                                |
| Límites        | `RATE_LIMIT_ENABLED`                                                                                                           | Rate limiting de peticiones.                                                      |
| Docs           | `SWAGGER_ENABLED`                                                                                                              | Sirve el documento OpenAPI y la UI de referencia de la API.                       |

## Modos multi-tenant

***

Lender corre en uno de dos modos:

* **Single-tenant** — un tenant (`DEFAULT_TENANT_ID`), un esquema de base de datos y una organización de ledger y ledger fijados en tiempo de construcción usados como default de posting.
* **Multi-tenant** (`MULTI_TENANT_ENABLED=true`) — persistencia **schema-por-tenant**, un pool de clientes de Midaz por tenant y eventos y postings de alcance por tenant. En este modo no hay default de ledger por entorno: el destino de ledger viene por transacción del perfil contable del producto.

## Posting al ledger y enrutamiento fail-closed

***

Cada evento financiero se contabiliza en el ledger a través de una intención de posting durable y un relay asíncrono — la ruta completa está en [Lender en la plataforma](/es/lender/lender-in-the-platform). La propiedad operativamente importante: **el enrutamiento falla cerrado**. Un posting se contabiliza en la organización de ledger y el ledger resueltos desde el perfil contable (single-tenant cae de vuelta al default por entorno); si ninguno resuelve un destino no vacío, Lender **se niega a contabilizar** en lugar de contabilizar en un ledger vacío o equivocado. En modo multi-tenant, un producto sin perfil contable por lo tanto no puede hacer posting — que es la salvaguarda buscada.

## Próximos pasos

***

<Card title="Lender en la plataforma" icon="sitemap" href="/es/lender/lender-in-the-platform" horizontal>
  La ruta de posting, el catálogo de eventos y el aislamiento de tenants en detalle.
</Card>
