JGroups, Terracotta & Hazelcast
===

Trying to wrap my head around these 3 projects and they all seem to handle slightly different problems that arise when trying to cluster. But all the documentation for them is sort of written for developers that are already "in the know", and are difficult for a newbie like me to make good sense of.

* What are the specific problems each of them are trying to solve, and how do these problems differ from one another?
* How does clustering with each of them differ from clustering app servers (like JBoss's or GlassFish's built-in clustering capabilities)?
* Are the problems these frameworks solve different enough to warrant their use on the same project? Or are they competitors with each other and thus have different solutions to the same/similar problem?

Thanks in advance for any insight into these curious, yet elusive frameworks!