I need to store session state for a web application that is deployed on multiple servers. I Want to avoid sticky sessions or doing session replication as I want the application to be self-contained and not rely on servlet container specific configurations.
So logically the only option left is to manage the session somewhere else and the logical direction is with a database that all servers share. But that will become a bottleneck (and a single point of failure), plus a relational database isn't really designed to store session data. A distributed NoSQL solution would be a better choice but still that will be another component to manage.
So I was thinking at a fast and distributed Java embeddable cache library that replicates the data across all nodes so that no matter which server the client reaches to have access to the latest state.
Hazelcast seems to be a good choice but I would just be needing a Map without any other features from Hazelcast so it seems a little bit to much for just a distributed container of key-value pairs.
But other than that I can't seem to find any other library to suit the need. Ideally it should be an open source library, something that I can freely use in a commercial product.
Any ideas?