How do you decide what sets of users you pre aggregate?
It seems like without some limits in place you could end up with huge number of sets, especially if you are calculating these based on event properties.
That's a great observation. Somewhere along the spectrum of query flexibility you reach a point where pre-aggregation doesn't work anymore. We have a separate column-store based system in place for certain types of queries which we'll almost certainly blog about in the future!