[VSA] UX for aggregated data
Within this epic we plan to re-architect the way we query VSA data. Due to the timestamp filter change, we take a substantially different approach within VSA.
Instead of querying the tables where the domain models are stored, we've decided to collect the data into separate database tables which are optimized for analytical database queries. This makes the new timestamp filtering behavior feasible and it also increases the query performance significantly.
Collecting data in separate database tables is extra work. This process would run in the background to avoid interference with the core functionalities of the application. These background jobs would be executed periodically which means that the presented data within VSA might be slightly outdated.
There are two cases where this will be noticeable:
- User changes some data (for example, adds a label which is used in a stage) which will not be visible in VSA for a while.
- The data "lag" can be less than 10 minutes.
- A large group updates to premium. VSA will not show data until the aggregation is complete.
- The data "lag" can be 30 minutes.
Task
How do we alter the VSA UI to inform users about the async data processing?
We can expose the following data points from the backend:
- What was the last timestamp which was aggregated (
last update: 2 days ago
). - Is an update job currently running?
- Progress from the currently running update job (number of processed records).
- Next update time (
Next update is scheduled to run in 2 hours...
)