Cache / memory-grid
Overview of use cases where (clustered) cache/memory-grid could be used:
- throttling
- cache (static) external content (e.g. codebases, static file content, ...)
- cache internal OpenHub data
- cache configuration properties
- use shared memory for saving runtime data, e.g. node evidence or evidence of running scheduled jobs
- cache for specific business logic implementations on projects
We had the following requirements when we have been selecting suitable cache implementation:
- uses Spring cache abstraction layer
- supports Spring Session (http://projects.spring.io/spring-session/)
- cache/memory-grid should support both modes by changing configuration only (without needs to change application code) - single application or cluster. In other words cluster should be option.
- first-class support for Spring Boot (auto-configuration)
- support in Apache Camel
We selected Hazelcast as default implementation.