We're currently working on a rather complex Drupal 8 based website. After clearing caches, the majority of pages/routes require about 30-60 seconds for being rendered/returning the desired results. Leveraging Drupal 8's dynamic page cache, this figure goes down to 250-700ms on subsequent requests.
Therefore, we implemented sitemap-based cache warming strategies (requesting all sitemap URLs through a NPM script after Drupal updates have been applied, configuration was imported, and caches cleared) for publicly accessible pages into our CI flow.
Now, I'm seeking to improve this solution. We want to additionally warm up the dynamic page caches for pages, that are available to authenticated users only. This comprises a lot of pages and custom entities with individualized content for various user groups and users, as well as a fine-grained permission scheme to selectively add/hide information per user.
Once again, when hitting these pages with cleared caches, they require loads of processing time until the first content is delivered to the browser. Subsequent hits for the very same user/route are fast enough for a decent (back-end) user experience.
There are about 2k different users and more than 400 user groups. Warming up all caches for all available user contexts would take about a day (given sequential warming and considering the current deployment times).
So I started wondering, whether I'm missing something, that could help warming up (as many as possible) dynamic page caches for authenticated users.
Is there any practice/strategy, that can be pointed out by the pro's in this group?