Will this behave OK for large data sets? 30-40k responses could cause a big spike in memory. Also, looping over that many entries could warrant optimizing the stats collection a bit, if we end up spending a fair amount of time in computation.

If it's not too bad for a few concurrent requests against 30k-large datasets, then we can probably worry about it later. Maybe Nodefly will give us some insight?