We have two Episerver sites, each using their own IIS site. It's a shared database and single codebase deployed to both IIS sites (and therefore independent Object caches). I've configured the events over WCF as described here (https://world.episerver.com/documentation/developer-guides/CMS/event-management/WCF-event-management/) but the default behavior doesn't seem to give us what we want.
It works successfully for updating the cached representation of a piece of content, however parent items are not updated. For example:
This can be pretty disruptive to our content editors since they don't know when it will be visible from the other site (due to sliding expiration). I briefly looked into a persistent cache like Redis, but as far as I can tell I would have to update a ton of code to work. For example, a GET from the ContentLoader reads from the default memory cache and wouldn't work with a Redis cache?
Does anyone have any recommendations here for keeping the cache synchronized in a multisite setup? Alternatively, am I better off considering using 1 IIS site for both websites so I don't have to keep the cache in sync?
Never heard of using different IIS sites for the same codebase and database, we always use just 1. What's the benefit of doing it this way?
They started out as separate codebases and sites and we ended up merging the code over time. After it was merged I believe we were thinking that separate app pools and IIS sites would prevent a crash from bringing down both sites, but I'm open to considering one IIS site if that is the recommended approach.
Ideally you don't want to be at a point where you're having crashes that take down the app pool. You should be using correct exception handling and error preventation to make your site stable, it only really makes sense to have 2 sites if they are load balanced, involved in some sort of staggered deployment scenario or you're gating off the CMS to a specific authoring domain. I'd move them to a single instance
That makes sense. We'll look into doing that, thank you.