I've got a small niche wordpress site where registered users enter data via forms on the site (or the wp rest api via mobile app). Currently I have no caching plugin. On the site, the user creates custom post types via these front end forms. They create a "series" of tournaments, "tournaments" and "entries" in those tournaments. There are ACF relationship fields between each, tournaments have a series_id, entries have a tournament_id, that sort of thing. In other words, a series is a collection of tournaments and a tournament is a collection of entries.
Each tournament has a page with a template that displays all the info about the tournament and each entry in a list. If a user adds an entry to a tournament (creates a CPT of entry with relationship to that tournament), they haven't really changed the tournament at all.
How does a caching plugin know to invalidate the cached page for that tournament? Maybe it doesn't but is it feasible? The number of entries and details of those entries that would be displayed on the tournament page need to be updated.
What are my options to enable some form of caching here? This seems like something that has to come up often, but I can't find much discussion and I haven't dealt with this on a dynamic site before.