Challenge: In a live system we will have no way of hardcoding meaningful min / max values for filters. We need a way to fetch them from the db. These values will need to react to changes in dimension filters (for example, if a user chooses Section->Sports, all the values for the filters need to update to reflect sports section only values.)
Simple Solution: Construct a simple min/max query for each of the filters and send them off. Preliminary tests on residential internet in the same region of our sever shows that we can get dozens of small requests like these back in under 2 seconds. This may vary wildly by region.
Robust Solution: Data layer precomputes a "meta stats packet" (https://github.com/coralproject/pillar/issues/64) for each dimensional breakdown. A request for this packet will give min, max, mean, standard deviation and maybe more for each value based in that dimension. This should account for most of the stats, although some defaults may still need more nuanced thought to may meaningful (aka, durations, etc...)
Challenge: In a live system we will have no way of hardcoding meaningful min / max values for filters. We need a way to fetch them from the db. These values will need to react to changes in dimension filters (for example, if a user chooses Section->Sports, all the values for the filters need to update to reflect sports section only values.)
Simple Solution: Construct a simple min/max query for each of the filters and send them off. Preliminary tests on residential internet in the same region of our sever shows that we can get dozens of small requests like these back in under 2 seconds. This may vary wildly by region.
Robust Solution: Data layer precomputes a "meta stats packet" (https://github.com/coralproject/pillar/issues/64) for each dimensional breakdown. A request for this packet will give min, max, mean, standard deviation and maybe more for each value based in that dimension. This should account for most of the stats, although some defaults may still need more nuanced thought to may meaningful (aka, durations, etc...)