Pular para o conteúdo principal

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.

O Systemplane permite que você visualize e modifique a configuração do Matcher em tempo de execução — sem reiniciar o serviço. Em ambientes financeiros regulados, interrupções não planejadas para aplicar mudanças de configuração representam um risco de conformidade e uma disrupção operacional. O Systemplane elimina isso: parâmetros operacionais podem ser ajustados enquanto o serviço permanece em execução, mantendo os processos de reconciliação ininterruptos.

Por que usar o Systemplane


Em um deploy tradicional, alterar um valor de configuração significa atualizar variáveis de ambiente e reiniciar o serviço. O Systemplane elimina esse downtime para muitas configurações:
  • Ajustar rate limits durante picos de tráfego sem redeploy — evitando interrupções do serviço em momentos de alto volume de transações
  • Ajustar intervalos de workers com base nos padrões de carga observados — otimizando o throughput de reconciliação sem mexer na infraestrutura
  • Atualizar tamanhos de connection pool conforme os padrões de tráfego mudam
  • Inspecionar valores atuais em tempo de execução para diagnosticar problemas em produção sem mergulhar nos logs

Como funciona


O Systemplane fornece uma API de gerenciamento de chave-valor flat. Todas as chaves de configuração estão em um único namespace sob /system/matcher.

Endpoints

EndpointMétodoO que faz
/system/matcherGETListar todas as chaves e seus valores atuais
/system/matcher/:keyGETObter o valor atual de uma chave específica
/system/matcher/:keyPUTAtualizar o valor de uma chave específica
Esses endpoints são servidos diretamente pela instância do Matcher em execução. Eles não são versionados sob /v1 — use os caminhos acima exatamente como mostrado.

Permissões


Os endpoints do Systemplane são protegidos pela mesma autenticação usada por todas as rotas da API do Matcher. Quando a autenticação está habilitada, todos os endpoints /system requerem a permissão RBAC system:admin. Quando a autenticação está desabilitada, todos os endpoints são acessíveis sem restrição.

Comportamentos de aplicação


Nem todo valor de configuração pode ser alterado em tempo de execução. Cada chave tem um comportamento de aplicação que indica quando as mudanças entram em vigor:
ComportamentoO que acontece
Somente bootstrapO valor é lido uma vez na inicialização. Você deve reiniciar o serviço para que as alterações entrem em vigor.
Leitura ao vivoAs alterações entram em vigor imediatamente na próxima requisição.
Reconstrução de bundleAs alterações disparam uma atualização de estado interno. Entra em vigor em segundos.
Reconciliação de workerWorkers em background captam o novo valor no próximo ciclo.
Chaves que são somente bootstrap NÃO estão registradas na API do systemplane — elas são gerenciadas exclusivamente por variáveis de ambiente. Isso evita uma armadilha onde um PUT de admin pareceria ter sucesso mas o processo em execução continuaria silenciosamente usando o valor do momento de inicialização.

Chaves de configuração comuns


Abaixo estão as chaves mais comumente ajustadas, organizadas por categoria. Para uma lista completa, chame GET /system/matcher.

Chaves ajustáveis em tempo de execução

Essas chaves podem ser alteradas sem reiniciar o Matcher:
ChaveVariável de ambienteDescrição
app.env_nameENV_NAMENome do ambiente da aplicação
server.body_limit_bytesHTTP_BODY_LIMIT_BYTESTamanho máximo do corpo da requisição HTTP
cors.allowed_originsCORS_ALLOWED_ORIGINSOrigens CORS permitidas
cors.allowed_methodsCORS_ALLOWED_METHODSMétodos CORS permitidos
cors.allowed_headersCORS_ALLOWED_HEADERSHeaders CORS permitidos
swagger.enabledSWAGGER_ENABLEDHabilitar ou desabilitar o Swagger UI
swagger.hostSWAGGER_HOSTOverride do host do Swagger
swagger.schemesSWAGGER_SCHEMESEsquemas de URL do Swagger
rate_limit.enabledRATE_LIMIT_ENABLEDHabilitar ou desabilitar o rate limiting global
rate_limit.maxRATE_LIMIT_MAXMáximo de requisições por janela de rate limit
rate_limit.expiry_secRATE_LIMIT_EXPIRY_SECDuração da janela de rate limit (segundos)
rate_limit.export_maxEXPORT_RATE_LIMIT_MAXRate limit do endpoint de exportação
rate_limit.dispatch_maxDISPATCH_RATE_LIMIT_MAXRate limit do endpoint de dispatch
rate_limit.admin_maxADMIN_RATE_LIMIT_MAXRate limit do plano admin (/system)
idempotency.retry_window_secIDEMPOTENCY_RETRY_WINDOW_SECJanela para tentar novamente requisições idempotentes com falha
idempotency.success_ttl_hoursIDEMPOTENCY_SUCCESS_TTL_HOURSPor quanto tempo as chaves de idempotência concluídas ficam em cache
fetcher.enabledFETCHER_ENABLEDHabilitar ou desabilitar o módulo Fetcher
fetcher.urlFETCHER_URLURL do serviço Fetcher
fetcher.discovery_interval_secFETCHER_DISCOVERY_INTERVAL_SECCom que frequência o Matcher consulta o Fetcher por novas fontes de dados
export_worker.enabledEXPORT_WORKER_ENABLEDHabilitar ou desabilitar o worker de exportação
export_worker.poll_interval_secEXPORT_WORKER_POLL_INTERVAL_SECCom que frequência o worker de exportação verifica novos jobs
cleanup_worker.enabledCLEANUP_WORKER_ENABLEDHabilitar ou desabilitar o worker de limpeza
cleanup_worker.interval_secCLEANUP_WORKER_INTERVAL_SECIntervalo do worker de limpeza
scheduler.interval_secSCHEDULER_INTERVAL_SECIntervalo de polling do scheduler
archival.enabledARCHIVAL_WORKER_ENABLEDHabilitar ou desabilitar o worker de arquivamento
webhook.timeout_secWEBHOOK_TIMEOUT_SECTimeout para dispatch de webhooks/callbacks
callback_rate_limit.per_minuteCALLBACK_RATE_LIMIT_PER_MINMáximo de callbacks por sistema externo por minuto
telemetry.enabledENABLE_TELEMETRYHabilitar OpenTelemetry
deduplication.ttl_secDEDUPE_TTL_SECTTL de deduplicação em segundos

Chaves multi-tenant (ajustáveis em tempo de execução)

Essas chaves controlam o comportamento multi-tenant e podem ser ajustadas sem reinício. Consulte Modo Multi-Tenant para mais detalhes.
ChaveVariável de ambienteDescrição
tenancy.multi_tenant_enabledMULTI_TENANT_ENABLEDHabilitar infraestrutura multi-tenant
tenancy.multi_tenant_urlMULTI_TENANT_URLURL do serviço Tenant Manager
tenancy.multi_tenant_max_tenant_poolsMULTI_TENANT_MAX_TENANT_POOLSMáximo de pools de tenant simultâneos
tenancy.multi_tenant_idle_timeout_secMULTI_TENANT_IDLE_TIMEOUT_SECTimeout de ociosidade para eviction de pool de tenant
tenancy.multi_tenant_cache_ttl_secMULTI_TENANT_CACHE_TTL_SECTTL do cache de configuração de tenant

Chaves somente bootstrap (requerem reinício)

Essas chaves não estão registradas na API do systemplane. Altere-as por variáveis de ambiente e reinicie:
ChaveVariável de ambienteDescrição
app.log_levelLOG_LEVELNível de log da aplicação (debug, info, warn, error)
server.addressSERVER_ADDRESSEndereço de escuta do servidor HTTP
postgres.primary_hostPOSTGRES_HOSTHost do banco de dados primário
postgres.primary_portPOSTGRES_PORTPorta do banco de dados primário
postgres.primary_dbPOSTGRES_DBNome do banco de dados primário
redis.hostREDIS_HOSTHost do Redis
rabbitmq.hostRABBITMQ_HOSTHost do RabbitMQ
auth.enabledPLUGIN_AUTH_ENABLEDHabilitar middleware de autenticação
auth.hostPLUGIN_AUTH_ADDRESSEndereço do serviço de autenticação

Boas práticas


Chame GET /system/matcher para ver todos os valores atuais em tempo de execução antes de fazer qualquer alteração. Isso confirma o que o processo está realmente usando, que pode diferir das variáveis de ambiente se chamadas PUT anteriores foram feitas.
Mesmo que as alterações em tempo de execução não requeiram reinício, elas entram em vigor imediatamente. Teste em um ambiente de staging antes de aplicar em produção.
Se uma chave não estiver visível em GET /system/matcher, ela é somente bootstrap. Atualize a variável de ambiente e reinicie o serviço — não há caminho em tempo de execução para esses valores.

Próximos passos


Modo multi-tenant

Habilitar e configurar o isolamento de tenant.

Roteamento de exceções

Configurar como as exceções são despachadas para sistemas externos.

Regras de match

Configurar regras de correspondência de transações.

Segurança

Autenticação, autorização e proteção de dados.