Hi everyone,
I’m building a Dash application to visualize statistics for a community website, and I’m trying to decide on the best overall structure before the dataset gets much larger.
The dashboard will eventually let users explore information such as:
- Most completed levels
- Difficulty distribution
- Player completion percentages
- Recently completed levels
- Leaderboard rankings
- Completion history over time
At the moment everything is stored in a single pandas DataFrame that’s loaded when the app starts. It works fine with a few thousand records, but I’m expecting the data to grow significantly as more players and levels are added.
My current concerns are:
- Keeping callbacks responsive when multiple charts depend on the same filtered dataset.
- Avoiding unnecessary recalculations when users change filters.
- Deciding whether I should pre-aggregate some statistics instead of computing everything on demand.
- Making sure the dashboard still feels responsive on mobile devices.
I’m currently using several linked callbacks so that changing one filter updates multiple graphs, but I’m wondering if this approach will become difficult to maintain as I continue adding new visualizations.
For those of you who have built larger Dash applications, how do you usually organize data processing and callbacks? Do you keep most of the logic inside callbacks, or do you move aggregation and preprocessing into a separate layer before the data reaches the dashboard?
I’d also be interested in hearing whether you’ve found caching to be worthwhile for dashboards that are updated periodically rather than in real time.
Any advice or examples of architectures that have worked well for you would be greatly appreciated. Thanks!