> ## 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.

# Configuração e implantação

> Como o Lender é empacotado e executado — a forma do container, suas dependências, uma superfície curada de variáveis de ambiente, os modos multi-tenant e a rota de posting no ledger.

export const GLedger = ({children}) => <Tooltip headline="Ledger" tip="O livro financeiro central que registra todas as transações, saldos e operações de uma organização — a fonte única de verdade para as finanças de uma unidade de negócio." cta="Ver glossário" href="/pt/glossary">
    {children}
  </Tooltip>;

export const GKubernetes = ({children}) => <Tooltip headline="Kubernetes" tip="Plataforma de código aberto de orquestração de containers que automatiza a implantação e o gerenciamento de aplicações. No BYOC, você opera clusters Kubernetes onde os produtos Lerian são implantados." cta="Ver glossário" href="/pt/glossary">
    {children}
  </Tooltip>;

O Lender é um único serviço Go, empacotado como container e configurado inteiramente por variáveis de ambiente. Esta página é a referência do operador: o que ele executa, do que depende, as configurações que importam e como a tenancy e o roteamento no ledger se comportam.

## O container

***

O Lender é construído a partir de um Dockerfile multi-estágio — um builder Go Alpine produzindo um binário estático, copiado para um runtime distroless nonroot — e escuta na porta `8080`. Ele é entregue como uma imagem de container que você implanta no seu cluster <GKubernetes>Kubernetes</GKubernetes> com o [tooling de ciclo de vida](/pt/platform/lifecycle-management) padrão da plataforma; esta página não assume nenhum empacotamento específico além da imagem.

Sondas operacionais:

| Endpoint       | Propósito                    |
| -------------- | ---------------------------- |
| `GET /health`  | Liveness.                    |
| `GET /readyz`  | Readiness de dependências.   |
| `GET /version` | Metadados de build e versão. |

## Dependências

***

| Dependência                         | Papel                                                                                                                                                                                                                                                                                |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **PostgreSQL 17**                   | Armazenamento de dados primário, com suporte a primário/réplica e isolamento schema-por-tenant no modo multi-tenant.                                                                                                                                                                 |
| **Valkey 8** (compatível com Redis) | Cache, rate limiting e o cache de credenciais M2M.                                                                                                                                                                                                                                   |
| **RabbitMQ**                        | Transporte do publicador de eventos, impulsionado por um dispatcher de **outbox** transacional.                                                                                                                                                                                      |
| **RedPanda**                        | Backbone de streaming para o catálogo de eventos do ciclo de vida (via biblioteca de streaming da Lerian).                                                                                                                                                                           |
| **Midaz**                           | O <GLedger>ledger</GLedger> de partidas dobradas, alcançado através do SDK oficial. O Lender se autentica via [Access Manager](/pt/platform/access-manager/access-manager) com credenciais máquina-a-máquina (M2M) por tenant, obtidas do AWS Secrets Manager e cacheadas no Valkey. |
| **Casdoor**                         | Provedor de identidade que respalda a autorização de rotas (via biblioteca de auth da Lerian).                                                                                                                                                                                       |
| **Systemplane**                     | Plano de configuração em tempo de execução, montado sob `/api/v1/systemplane`.                                                                                                                                                                                                       |

## Superfície de configuração

***

A configuração é inteiramente dirigida por ambiente. As chaves abaixo são um subconjunto curado — as que moldam o comportamento — não a lista completa.

| Grupo           | Chave                                                                                                                          | O que controla                                                                   |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| App             | `ENV_NAME`, `LOG_LEVEL`, `DEPLOYMENT_MODE`, `SERVER_ADDRESS`                                                                   | Nome do ambiente, verbosidade de logs, modo de implantação e endereço de escuta. |
| Tenancy         | `MULTI_TENANT_ENABLED`, `DEFAULT_TENANT_ID`                                                                                    | Alternar entre modos single- e multi-tenant, e o tenant usado em single-tenant.  |
| Tenancy (MT)    | `MULTI_TENANT_MAX_TENANT_POOLS`, `MULTI_TENANT_CIRCUIT_BREAKER_THRESHOLD`                                                      | Teto de pools de conexão por tenant e ponto de disparo do circuit breaker.       |
| Postgres        | `POSTGRES_HOST`, `POSTGRES_PORT`, `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_NAME`, `POSTGRES_SSLMODE`, `MIGRATIONS_PATH` | Conexão ao banco primário e migrações.                                           |
| Cache           | `REDIS_HOST`, `REDIS_PASSWORD`, `M2M_CREDENTIAL_CACHE_TTL_SEC`                                                                 | Conexão ao Valkey e por quanto tempo as credenciais M2M são cacheadas.           |
| Mensageria      | `RABBITMQ_ENABLED`, `RABBITMQ_HOST`, `OUTBOX_ENABLED`, `OUTBOX_DISPATCH_INTERVAL_SEC`                                          | Transporte RabbitMQ e a cadência do dispatcher do outbox.                        |
| Streaming       | `STREAMING_ENABLED`, `STREAMING_BROKERS`, `STREAMING_TLS_ENABLED`                                                              | Toggle de streaming de eventos, endereços de brokers e TLS.                      |
| Auth            | `PLUGIN_AUTH_ENABLED`                                                                                                          | Habilita a autorização de rotas contra o provedor de identidade.                 |
| Ledger M2M      | `AWS_REGION`                                                                                                                   | Região do Secrets Manager que guarda as credenciais do Midaz por tenant.         |
| Observabilidade | `ENABLE_TELEMETRY`, `OTEL_EXPORTER_OTLP_ENDPOINT`                                                                              | Toggle de telemetria e endpoint do coletor OTLP.                                 |
| Limites         | `RATE_LIMIT_ENABLED`                                                                                                           | Rate limiting de requisições.                                                    |
| Docs            | `SWAGGER_ENABLED`                                                                                                              | Serve o documento OpenAPI e a UI de referência da API.                           |

## Modos multi-tenant

***

O Lender roda em um de dois modos:

* **Single-tenant** — um tenant (`DEFAULT_TENANT_ID`), um schema de banco de dados e uma organização de ledger e ledger fixados em tempo de construção usados como default de posting.
* **Multi-tenant** (`MULTI_TENANT_ENABLED=true`) — persistência **schema-por-tenant**, um pool de clientes do Midaz por tenant e eventos e postings com escopo por tenant. Nesse modo não há default de ledger por ambiente: o destino de ledger vem por transação do perfil contábil do produto.

## Posting no ledger e roteamento fail-closed

***

Cada evento financeiro contabiliza no ledger através de uma intenção de posting durável e um relay assíncrono — a rota completa está em [O Lender na plataforma](/pt/lender/lender-in-the-platform). A propriedade operacionalmente importante: **o roteamento falha fechado**. Um posting é contabilizado na organização de ledger e no ledger resolvidos a partir do perfil contábil (single-tenant cai de volta ao default por ambiente); se nenhum resolver um destino não vazio, o Lender **se recusa a contabilizar** em vez de contabilizar num ledger vazio ou errado. No modo multi-tenant, um produto sem perfil contábil portanto não pode fazer posting — que é a salvaguarda pretendida.

## Próximos passos

***

<Card title="O Lender na plataforma" icon="sitemap" href="/pt/lender/lender-in-the-platform" horizontal>
  A rota de posting, o catálogo de eventos e o isolamento de tenants em detalhe.
</Card>
