RESTHeart makes use of caches for different purposes (e.g. db and collection properties, db based IDM, session token authentication). These are usually implemented using guava cache.
These are local caches that might pose issues in clustered deployments.
We need to allow specifying the actual cache implementation via configuration.
We can then have different implementations:
local guava cache
a distributed cache (for instance, implementing the JCache specs)
a cache that sync data between different instances via a mongodb collection. note that from mongo v3.6 change stream allows notification of data changes