ActiveSpace implements a transactional and clustered JCache providers. To get a feel for the APIs try the javadoc.

There are currently two primary cache implementations

TransactionalCache

The TransactionalCache represents an in-JVM cache with full concurrent transactional support. So the cache can be used in many concurrent threads within the same JVM and still provide a good, high peformance transactional JCache.

The TransactionalCache can plugin to various different transaction managers like JTA or Spring.

Currently only optimistic transactions are supported; but pessimistic transactions will be supported soon.

ClusteredCache

The ClusteredCache is-a TransactionalCache but instead of being purely local to a JVM it is clustered across a number of machines (JVMs).

The ClusteredCache makes use of the Space abstraction to replicate state across the cluster and provide full transactional semantics while also providing fast in-process caching.

Currently only optimistic transactions are supported; but pessimistic transactions will be supported soon.

Using other VM based JCache providers

There are many different open source in-VM caches, all of which can be trivially wrapped in a JCache API wrapper if they don't yet natively support JCache.

ActiveSpace's transactional and clustered cache support will work with any in-VM JCache provider, so if you wish to use any other JCache provider in conjunction with ActiveSpace it should work fine.

As this project progresses we'll add standard wrappers/adapters to some of the existing open source cache projects like OSCache and EHCache.