We are in a process of splitting up a larger application into smaller parts (WAR, possibly both running in same JVM and different JVMs).
The app shares a lot of user data (1000-3000 concurrent sessions) via http session:
1. some fairly static data that is fetched when user logs on
2. data used for inter-app-communication (simulating request.setAttribute, reguest.getAttribute), data that is deleted once it is read by the receiver.
I will make some test scenarios, but my guess is
Ehcache in "Express mode"
The data structure I'm a little bit concerned about:
1. One big UserData object
2. Smaller chunks stored in the Cache
3. Both (maybe the UserData for the fairly static data)