# ADR-002: Two-Tier Feature Store (ETS + Redis)

Status: Accepted | Date: 2026-05-21

## Context
Jube achieves 4× throughput via a Local LRU Cache (in-process) backed by Redis.
Options considered:
  A) ETS only (current infra_cache pattern)
  B) Redis only
  C) ETS tier 1 + Redis tier 2 (Jube pattern)

## Decision
Option C: ETS tier 1 + Redis tier 2.

## Justification
- ETS-only: insufficient for multi-node cluster (each node has stale data)
- Redis-only: 1–3ms latency per feature, multiplied by 15 entity dims = 15–45ms
  before scoring even starts, violating < 50ms SLA
- ETS + Redis: hot entities served from local ETS (<0.2ms), Redis only on cold miss.
  Cluster sync via PubSub invalidation (same pattern as RouteTableSync already uses).

---