// $Id: Requirements.txt 2073 2006-06-19 12:33:28Z  $


	Requirements
	============
	
Default properties define how the cache handles its entries:
  - Transient
  - Replicated
  - Eviction policy (e.g. LRU)
  - Replication group name and properties
  - Replication mode and default timeout

Both transient and replicated entries should be accommodated by the same cache. Transient
entries can be changed into replicated entries and vice versa

Replication can be:
	- Asynchronous: update is multicast and we return immediately
	- Synchronous: update is multicast, call waits for all acks or timeout before returning
	- Synchronous with locking: locks have to be acquired for all resources to be changed

Eviction policies/implementations should be pluggable: user-defined classes used by the
cache implement and enforce the cache eviction strategies. They have access to the cache
and can read its properties
	
There should be multiple caches per JGroups channel.
For example, a StatefulSessionBeanCache should be able to use the same channel as 
an EntityBeanCache. Can we reuse the channel used by the
Clustering subsystem ?

We should support both pessimistic and optimistic locking

Replication messages might be queued for async replication and sent periodically