It's synchronized, meaning if you have more than 1 web server, it will (atleast try) to communicate to the other servers and evict cache if one of the servers has modified the object behind the cache :)
As a general rule, we should always use
ISynchronizedObjectInstanceCache when caching custom data. It is the safest to do, when there are more than one server hosting the solution. Even if there is only one server, this is still the best way.
Of course we can also use
IObjectInstanceCache. But for most scenarios it doesn't makes sense to use it.
What is the difference between using C# ObjectCache vs ISynchronizedObjectInstanceCache in an Episerver web application.