- fast enough to feel instant
- repeatable enough to be trusted and shared
Storage (Postgres)
OpenKol stores:- normalized posts (author, timestamp, engagement, extracted symbols)
- analysis snapshots (scores, medal, resolved token/pair, window metadata)
- derived aggregates used for KOL profiles and leaderboards
- permalinks
- history
- profile rollups
- re-opening an analysis without recomputing everything
Caching (Redis)
Redis is used to cache high-cost lookups and frequently requested artifacts, including:- post details and normalized metadata
- analysis snapshots for fast page loads
- token pair and liquidity lookups
- candle data for common windows and resolutions
- repeated external provider calls
- page latency spikes
- load during traffic bursts (e.g., viral share cards)
Local history (client)
The client keeps a lightweight analysis history in LocalStorage to:- quickly reopen recent analyses
- avoid unnecessary refetching during navigation
Why it matters
- Persistent storage gives auditability and stable permalinks.
- Caching keeps the experience fast and lowers external dependency load.
- Together, they help OpenKol stay reliable even when usage spikes or upstream providers rate-limit.