ADR-0006: Managed Redis for the original hosted deployment
- Status
- superseded for self-hosting
- Decided
- September 2026 (hosted deployment, ADR-0004)
- Applies to this repository
- Partly: core needs a Redis-API server; which one is your choice.
Context
Core uses one Spring Data Redis connection (spring.data.redis.host/port/password,
i.e. REDIS_HOST, REDIS_PORT, REDIS_PASSWORD) for rate limiters,
session memory, response caches and similar consumers. The hosted deployment used its
cloud's managed Redis, reached over a private network, instead of a Redis container.
Decision (historical)
Use the cloud's managed Redis: plaintext protocol inside the private network, single node, no clustering. Core's Redis configuration has no TLS setup, which is why plaintext on a private network was accepted.
What applies to self-hosters
- Compose and Helm bundle Valkey (Redis API,
valkey/valkey:8.1-alpine), single node, password fromVALKEY_PASSWORDor the chart Secret. - To use your own Redis-compatible service, set the Helm
global.valkeyhost values (orREDIS_*for core) and disable the bundled one. Keep it on a private network: core does not configure TLS to Redis. - Redis contents are disposable by design (caches, sessions, rate-limit windows); back up Postgres, not Redis.
Evidence & references
core/app-config/src/main/resources/application.yml—spring.data.redisblock.deploy/compose/docker-compose.yml(valkey),deploy/helm/charts/valkey,deploy/helm/charts/vegaduta/values.yaml(global.valkey).