A trader has 12 dashboards open. Each one consumes a market-data stream pushing 1,000-2,000 ticks/sec. Today's browser drops to 20-30 fps because every tick re-aggregates on the main thread with no per-operator routing - and the lost frames are lost money on time-sensitive decisions.
The per-tick aggregation layer. Hadron's per-operator dispatch picks GPU for the heavy groupBy, keeps the buffer on GPU for the consecutive sort (inter-operator buffer retention), and stays on CPU for the small filter - re-evaluated every frame as buffer size grows.
60 fps holds at 1,000+ ticks/sec while a naive React baseline craters to 20-30. Every operator visibly chooses its backend each frame; the dispatch decision is observable for audit and compliance. Zero per-tick server round-trip.
Hadron is not claiming the GPU is fastest. It picks the right backend per operator, per frame, as the data shape changes. A 200-row filter runs on CPU; the 200K-row groupBy across the next 5 seconds of ticks runs on GPU; the sort consumes the groupBy's GPU buffer directly (core dispatch routing). The decision flips live as the streaming window grows or shrinks.