A custom compiler which optimises retrieval of posts from the wordpress database. Retrieval through this method will result in a linear complexity rather than the quadratic complexity you get with the out of the box plugins.
In order to use the framework, the post classes are required to implement the CmsPostIdentifier interface. This interface is used to identify a retrieved post by its PostId. Obtaining the post id from a retrieved post is only used to facilitate caching.
The requirement of post classes implementing CmsPostIdentifier should be removed.
The type of GlobalPostCacheStore is MutableCache which is syntactic sugar for mutable HashMap. In a clustered environment, objects in a CMS tend to be fetched from a database and stored in a clustered cache (such as Redis) which is shared across the cluster. The choice of an in-memory HashMap as a cache inhibits the framework's native integration to a clustered cache.
Having the GlobalPostCacheStore as a trait which can be implemented and integrated with a clustered cache would can ease this restriction. It is suggested that the trait should only have two interactions, put and get which are the basic operations for a cache. The in-memory GlobalPostCacheStore implementation should also be left as a fallback for integrations which suffice with an in-memory cache.