title: What are the different approaches for Java EE session replication?
body: <p>I am working on a project that requires really high availability and my team is currently working on upgrading some infra-structure and software for a future release.</p>
  
  <p>One of the features we would like to enable is to have session replication across not only different servers, but ideally across different sites (geographically spread). Is that possible? What are the approaches?</p>
  
  <p>For what I have seen so far, to enable session replication, the usual vendor approaches are either one of these:</p>
  
  <ul>
  <li>Serializable session attributes</li>
  <li>&lt; distributable /> tag in the web.xml with additional configuration in vendor specific xml</li>
  </ul>
  
  <p>Are there other approaches? Should I go for in-memory replication? Or should I persist the session state? What app server vendors implement each solution?</p>
  
  <p><strong>Edit: I started a bounty, so I really am looking for a comprehensive answer. :)</strong></p>