Fintech
Real-time market dashboard with sub-50ms UI updates
Challenge
A market-data dashboard on a legacy React stack dropped frames and built up memory pressure during high-volatility periods. The team needed a frontend that could keep up with multiple data streams without losing responsiveness.
Solution
We rebuilt the frontend on Next.js App Router with React Server Components for static chrome and a canvas-based order book for the hot path. WebSocket streams feed normalized deltas into a typed client store, with backpressure handling for spike periods.
Architecture
Event-driven architecture with Redis Streams as the message bus. Next.js renders Server Components for static chrome; client components handle WebSocket data streams and render to canvas for the order book. Typed contracts between server and client.
Stack
Next.jsTypeScriptWebSocketsCanvas APIRedis StreamsTimescaleDB
Key Metrics
<50ms
UI update target
60fps
Frame rate
Bounded
Memory growth
Streamed
Origin requests
Outcomes
- Eliminated frame drops during high-volatility windows
- Removed unbounded memory growth from the trading view
- Reduced time-to-interactive for analyst workflows
- Clear separation between server-rendered chrome and real-time client surface