We are still evaluating Glassfish for converting an existing system over to Java. In the current system (a web application) we have several instances that serve users. Sessions are created and stored on an EHCache server. This way each application instance has access to the same session data. I have been reading up on Glassfish and the in-memory replication it has, but I am still a little confused as to whether that will cover all my needs or whether I still need an external memory cache like EHCache. Any general pointers would be appreciated. BTW one concern was that in the GF docs, it states that for failover and HA persistence to work, we need sticky sessions in the balancer - this is something we are moving away from - we don't want sticky sessions.