1. Intro — The Problem We Actually Had Building real-time systems is often presented as a distributed systems problem. Kafka, stream processors, event buses, fanout pipelines, multiple caches — the architecture diagrams usually become complicated very quickly. But the problem we were trying to solve was actually much simpler. We were ingesting thousands of live crypto price updates per second from exchange WebSocket streams. The frontend already consumed those streams directly for ultra-low latency updates. What users still needed, however, was a fast REST API capable of serving: sortable market data filtered leaderboards paginated live results near real-time prices Streaming data is one thing. Querying live data efficiently is another. Our initial attempts with PostgreSQL quickly became difficult under constant high-frequency writes combined with sorted read-heavy workloads. At the same time, we wanted to avoid introducing unnecessary infrastructure complexity.…