{
  "id": "edge-cache/redis-cluster-failover",
  "slug": "redis-cluster-failover",
  "title": "Session: redis-cluster-failover — 2026-10-27",
  "type": "source",
  "project": "edge-cache",
  "date": "2026-10-27",
  "started": "2026-10-27T09:45:00+00:00",
  "ended": "2026-10-27T12:27:00+00:00",
  "model": "gpt-5",
  "cwd": "/home/dev/code/edge-cache",
  "git_branch": "fix/redis-failover",
  "permission_mode": "default",
  "user_messages": 1,
  "tool_calls": 4,
  "tools_used": [
    "Bash",
    "Edit",
    "Write"
  ],
  "is_subagent": false,
  "wikilinks_out": [
    "ChaosTesting",
    "CircuitBreaker",
    "Redis",
    "edge-cache"
  ],
  "body_text": "Project: edge-cache · Branch: fix/redis-failover · Mode: default · Model: gpt-5\n\nSummary\n\nDebugged cache misses spiking during Redis failovers: the client kept a stale slot map. Enabled RouteByLatency with MaxRedirects, added a circuit breaker that falls back to the in-memory LRU, and wrote a chaos test with toxiproxy.\n\nConversation\n\nTurn 1 — User\n\nEvery Redis failover gives us a minute of 100% misses.\n\nTurn 1 — Assistant\n\nThe client keeps routing to the demoted primary until the slot map refreshes. Refresh on MOVED, add a breaker that degrades to the local LRU, and reproduce with toxiproxy in CI.\n\nTools used in this turn:\n\n- Bash: docker compose -f chaos.yml up -d\n- Edit: store/redis.go\n- Write: store/breaker.go\n- Bash: go test ./chaos -run Failover — ok\n\nConnections\n\n- edge-cache\n- Redis\n- CircuitBreaker\n- ChaosTesting",
  "sha256": "c6714306c0e24c36",
  "source_url": "sessions/edge-cache/2026-10-27-redis-cluster-failover.html"
}