The Problem We Were Actually Solving
The engine began as a single Elixir cluster running on 9 beefy bare-metal nodes in Frankfurt, each with 256 GB RAM and 64 cores. We used Redis for pub/sub to broadcast hunt progress and PostgreSQL for authoritative state. Our core loop was:
Player action → Phoenix channel → Redis pub
All live clients receive update → push to browser via WebSocket
Every 5 seconds, the server snapshots Redis state into PostgreSQL to survive restarts






