Sakai would see great benefits from a distributed cache however the some of the dense objects that are cached pose serialization issues and have traditionally prevented the use of a distributed cache. However this is not the case for Hibernate L2 caching and so we could look at leverage something like Apache Ignites Distributed Hibernate L2 cache.
A distributed cache inherently solves the cache invalidation issues between multiple nodes and has many improvements some of which are described in
- removes the need for cache invalidation logic
- less database calls and cache ttl's can now be much higher
- warm caches on node restarts
- lower memory requirements