Architecture

📖 2 min read 📄 Part 3 of 10

Top-K Analysis System - Architecture

High-Level Architecture

📡 Event Sources Apps, APIs, Clickstreams 📨 Kafka (Event Stream) STREAM PROCESSING (Apache Flink) 📊 Count-Min Sketch O(1) update & query 🎯 Heavy Hitters Misra-Gries 💾 Space Saving Multi-tier Aggregation: Per-partition → Per-node → Global merge ⚡ Redis Real-time Top-K Sorted Sets + TTL 🗄️ ClickHouse Historical Analytics Columnar Storage 🌐 API Service Query Top-K (real-time + historical) Accuracy: ε-approximate with δ probability | Space: O(K log N) | Latency: P99 < 50ms
Top-K Analysis — Stream Processing with Count-Min Sketch & Space-Saving

Algorithms

1. Count-Min Sketch

  • Probabilistic counting
  • O(1) update and query
  • Space: O(K log N)
  • Accuracy: ε error with δ probability

2. Heavy Hitters

  • Identify frequent items
  • Misra-Gries algorithm
  • Space: O(K)
  • Guarantees top-K

3. Space Saving

  • Stream-Summary algorithm
  • Maintains top-K with counts
  • Space: O(K)
  • Better accuracy than Count-Min

Data Flow

Real-time Processing

1. Events arrive in Kafka
2. Flink processes stream
3. Update Count-Min Sketch
4. Update Heavy Hitters
5. Store top-K in Redis
6. Persist to ClickHouse

Query Flow

1. API receives top-K request
2. Check Redis cache
3. If miss, query ClickHouse
4. Merge and rank results
5. Return top-K list

This architecture provides accurate, real-time top-K analysis at scale.