Hello Tomcat friends, We recently published to Maven Central (com.github.exabrial:redex-sm:1.0.2) a new Tomcat SessionManager that stores your serialized Sessions in Redis instance. Details and usage are available here: https://github.com/exabrial/redex-sm
The advantage of using a SessionManager like this is you may scale your cluster very easily with sticky sessions and perform rolling upgrades without user interruption. Redis is a great fit for a session storage use case as it's basically a network-enabled Map. Many implementations of the Redis protocol are available and creating fault-tolerant scalable setup is a well-trodden path. redex-sm is very fast and tries to do the minimal amount of work on the request thread. If a server dies, the user's session is retrieved from Redis. If a session is updated, an event is broadcast to tell other servers to evict their copy of the session in memory. If the session is invalidated, an event is broadcast and all nodes invalidate the session. We created this because the venerable memached-session-manager is very out of date, and the Redisson session manager has a very large dependency list that it does not shade and combines into a single jar, causing classpath conflicts. There are a few improvements to be made such as supporting multiple tomcat revisions, writing tests, and pooling/broadcasting enhancements. We'd love to see your pull requests or just if you find it useful. Thank you, -- Jonathan | exabr...@gmail.com Pessimists, see a jar as half empty. Optimists, in contrast, see it as half full. Engineers, of course, understand the glass is twice as big as it needs to be.