Vision

The idea is to provide a single API (essentially java.util.Map) that will allow Geronimo (and POJO's for that matter) to cache objects. Some aspects of the API and impl;

The API will be the same for clients regardless of the configured implementation.

The impl will be specified via configuration

The impl will work for pojo's as well as within/part of Geronimo

Transport, Storage, Topology and Cache are all loosely coupled

Toplogies Supported

A topology refers to the way the cache node(s) are laied out across a network and how the clients of the cache interact with the cache.

Local - in memory, not replicated, no redundency, very fast read & write

Fully Replicated - locally in memory but replicated to other caches, redundant, very fast local read, write depends on transport impl choosen

Distributed - partially replicated, partially remote

Topologies Envisioned

Fully Remote - a cache that is remote to all clients, use full in some situations for access to expensive to find or generate information that is accessed infrequently. Other use cases I'm sure apply here.

Current State

The current state is very alpha and more or less in a proof of concept state but many things do work.