# docker/valkey/valkey.conf — cache/sessão/fila (ADR-005)
# Sem porta publicada; só a rede interna do Compose. `requirepass` vem por CLI/env.

bind 0.0.0.0
protected-mode yes
port 6379

# Persistência
appendonly yes
appendfsync everysec
save 900 1
save 300 10

# Evicção sob pressão (não perder chaves de fila/sessão ativas)
# Sem `maxmemory` a política `volatile-lru` é inerte e o processo cresce até o OOM do host.
# Conta: sessões (~2 KB × usuários CMS simultâneos) + cache de resposta/rate limit + fila
# (jobs curtos). 256 MiB cobre o perfil single-tenant com folga; ajustar ao host e monitorar
# `used_memory`/`evicted_keys` (evicção de chave com TTL é esperada; chave sem TTL nunca cai).
maxmemory 256mb
maxmemory-samples 5
maxmemory-policy volatile-lru

# ---------------------------------------------------------------- Log (ADR-024/ADR-019)
# `logfmt`: uma linha por evento, no formato `campo=valor` — grepável e parseável sem
# regex. `iso8601`: o timestamp é legível por pessoa e ordenável (o default é epoch).
log-format logfmt
log-timestamp-format iso8601
# **PII**: o comando do cliente pode trazer dado pessoal (uma chave de sessão, um email,
# um valor de cache). Em log técnico isso é dado pessoal (ADR-019) — o Valkey troca o
# comando pela forma `((redacted))`. O login do CMS é justamente uma sessão no Valkey.
hide-user-data-from-log yes
# ---------------------------------------------------------------- Lazyfree (ADR-024)
# A liberação/expiração de uma chave grande acontece na **thread de background**: quem
# expira a chave não paga o custo e o event loop não trava (uma chave de sessão grande
# deixaria o request lento).
lazyfree-lazy-eviction yes
lazyfree-lazy-expire yes
lazyfree-lazy-server-del yes
# ---------------------------------------------------------------- Diagnóstico
# `latency-monitor-threshold 100`: o `LATENCY HISTOGRAM` registra o comando acima de
# 100 ms — o sintoma de chave grande ou de pool saturado aparece no próprio cache.
latency-monitor-threshold 100
# Fila de conexões: 511 (o default do SO é 128 — pico de login em paralelo estoura).
tcp-backlog 511
