Remove hierarchical grouping (networking/, security/, etc.) and use flat structure for all 41 platform components. Changes: - All components now directly under platform/ (no subfolders) - AI Hub components moved from meta-platforms/ai-hub/components/ to platform/ - Open Banking components (lago, openmeter) moved to platform/ - meta-platforms/ now only contains README files that reference platform/ - Open Banking custom services remain in meta-platforms/open-banking/services/ Structure: - platform/ (41 components, flat) - meta-platforms/ai-hub/ (README only, references platform/) - meta-platforms/open-banking/ (README + 6 custom services) All documentation links updated. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| README.md | ||
Valkey
Redis-compatible in-memory cache for OpenOva platform.
Status: Accepted | Updated: 2026-01-18
Overview
Valkey provides in-memory caching for sessions, rate limiting, and ephemeral data with multi-region replication support.
As an OSS support provider, OpenOva requires truly open-source components:
- Redis OSS: RSALv2 + SSPL license (since March 2024) - not open source
- Dragonfly: BSL 1.1 license - not open source
- Valkey: BSD-3 license - truly open source
Why Valkey
| Factor | Valkey |
|---|---|
| License | BSD-3 (truly open source) |
| Governance | Linux Foundation |
| Backing | AWS, Google, Oracle, Ericsson, Snap |
| Origin | Fork of Redis 7.2.4 |
| Compatibility | 100% Redis API compatible |
| DR Strategy | REPLICAOF (same as Redis) |
Architecture
Single Region
flowchart TB
subgraph Cluster["Valkey Cluster"]
VK1[Valkey 1]
VK2[Valkey 2]
VK3[Valkey 3]
end
App[Applications] --> VK1
App --> VK2
App --> VK3
Multi-Region DR
flowchart TB
subgraph Region1["Region 1 (Primary)"]
VK1[Valkey Primary]
end
subgraph Region2["Region 2 (DR)"]
VK2[Valkey Replica]
end
VK1 -->|"REPLICAOF"| VK2
App1[Apps R1] --> VK1
App2[Apps R2] --> VK2
DR Strategy: REPLICAOF
Valkey supports Redis REPLICAOF for async replication:
# On DR region Valkey
REPLICAOF primary-valkey.region1.svc.cluster.local 6379
# Promote DR to primary (failover)
REPLICAOF NO ONE
| Aspect | Value |
|---|---|
| Replication | Asynchronous |
| Lag | Milliseconds to seconds |
| Consistency | Eventual |
| Failover | Manual promotion |
Configuration
Primary Region
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: valkey
namespace: databases
spec:
replicas: 1
template:
spec:
containers:
- name: valkey
image: valkey/valkey:8-alpine
args:
- --requirepass
- $(VALKEY_PASSWORD)
- --maxmemory
- 2gb
ports:
- containerPort: 6379
env:
- name: VALKEY_PASSWORD
valueFrom:
secretKeyRef:
name: valkey-credentials
key: password
DR Region (Replica)
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: valkey
namespace: databases
spec:
replicas: 1
template:
spec:
containers:
- name: valkey
image: valkey/valkey:8-alpine
args:
- --requirepass
- $(VALKEY_PASSWORD)
- --maxmemory
- 2gb
- --replicaof
- valkey.region1.<domain>
- "6379"
- --masterauth
- $(MASTER_PASSWORD)
Use Cases
| Use Case | TTL | Eviction | DR Needed |
|---|---|---|---|
| Session cache | 24h | LRU | Yes |
| Rate limiting | 1m | Fixed | No (local) |
| API cache | 5m | LRU | Optional |
| Feature flags | 1m | LRU | Yes |
Monitoring
| Metric | Description |
|---|---|
valkey_connected_replicas |
Number of connected replicas |
valkey_replication_lag |
Replication lag in bytes |
valkey_used_memory |
Memory usage |
valkey_commands_processed_total |
Total commands processed |
Migration from Redis/Dragonfly
Valkey is a drop-in replacement:
- No application changes - Same Redis protocol
- Same client libraries - Redis clients work unchanged
- Same commands - Full Redis command compatibility
- Same REPLICAOF - Identical DR pattern
Part of OpenOva